{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "cb09fc90-9f05-4183-b30b-6f662945a17f",
   "metadata": {},
   "source": [
    "# 1. Bring in full data"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "a08ecb20-b8ef-4bad-aab4-0905c23a9c19",
   "metadata": {},
   "source": [
    "# 1.1 Basic imports"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "62cd8922-6bb6-42a5-936a-7acce278343a",
   "metadata": {},
   "outputs": [],
   "source": [
    "from basic_libraries import os, np, xr, pd, plt"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "42bb718f-cd8b-4b4a-9fec-33b7fe15930e",
   "metadata": {},
   "outputs": [],
   "source": [
    "import mpl_axes_aligner"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "a23ac452-764c-4343-ba10-e2119d039edc",
   "metadata": {},
   "outputs": [],
   "source": [
    "from ape_funcs import get_full_data_fpaths, surf_temp_giver, da_giver"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "cb9008c2-f147-4503-889a-3ec9e2765647",
   "metadata": {},
   "outputs": [],
   "source": [
    "import sys\n",
    "sys.path.append('.')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "4d7389b1-4f80-43bc-bfea-6455825005df",
   "metadata": {},
   "outputs": [],
   "source": [
    "import importlib\n",
    "import first_part_story_funcs"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "a4b1bb8f-c01a-47d4-9adf-2e9a5f9d4a20",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<module 'first_part_story_funcs' from '/Volumes/COO/MFP_NJ/NOTEBOOKS/first_part_story_funcs.py'>"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "importlib.reload(first_part_story_funcs)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "46ec7529-a71b-4f44-800e-8832c2f4e7b7",
   "metadata": {},
   "source": [
    "## 1.2 Open up precip. data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "2c31f24d-1ad7-4dba-8882-1f550401dee4",
   "metadata": {},
   "outputs": [],
   "source": [
    "#get prec_data, specify location of precip data in base_dir\n",
    "base_dir = r'...'\n",
    "surf_temps = surf_temp_giver()\n",
    "prec_var = 'prec_mp'\n",
    "\n",
    "fname,sec_part = 'Ts','_hourly3d.nc'\n",
    "\n",
    "array_prec_dic = {k : xr.open_dataset(os.path.join(base_dir, fname + k[:-1] + sec_part), \n",
    "                                      decode_times=False)['prec_mp'] for k in surf_temps}\n",
    "\n",
    "hourly_prec_dic = {'FV3':array_prec_dic}"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "f786c586-3c67-4313-bd5b-73f8151f8462",
   "metadata": {},
   "source": [
    "# 2. Make distributions"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "5236037a-1ac5-45a7-8fd4-b16d2f0b7d6e",
   "metadata": {},
   "source": [
    "## 2.1 Import relevant functions"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "2e51a2c8-c224-432e-841f-33b7f227d52e",
   "metadata": {},
   "outputs": [],
   "source": [
    "#keep cell in case you want to see the log-structure plots\n",
    "from freq_amount_funcs import calculate_log_ratios\n",
    "from freq_amount_funcs import calc_Fd_and_histNormCounts as calc_dists\n",
    "from freq_amount_funcs import process_surface_temperature_cases as pstc \n",
    "from freq_amount_funcs import geo_series, midpoint_giver\n",
    "\n",
    "\n",
    "boundaries = geo_series(1.15,0.001,2000) #boundaries of the distributions at 7%, moe means \"midpoint of edges\"\n",
    "\n",
    "moe = midpoint_giver(boundaries)\n",
    "delLogR = calculate_log_ratios(boundaries)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "fc1a1039-13f6-4aeb-b9c8-306c637a8525",
   "metadata": {},
   "source": [
    "### 2.1.1 Set up to run process surf temp cases (pstc)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "3da11a0e-d7fb-4225-a0c9-3fe3255f1f11",
   "metadata": {},
   "outputs": [],
   "source": [
    "#specify path to save and save name\n",
    "spath = '...'\n",
    "prec_lists = list(array_prec_dic.values())\n",
    "surf_temps = ['280K', '290K', '300K', '310K']\n",
    "outname = 'sanity_check'"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "7aaae9fe-7ea6-4f57-a290-6dc98fecbf3a",
   "metadata": {},
   "source": [
    "## 2.2 Run your function to get amount distributions"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "2c08fe0c-6164-4fde-99e5-1d777abd90c4",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[FV3] Processed successfully.\n"
     ]
    }
   ],
   "source": [
    "#save directory to be specified\n",
    "sfig = r'...'\n",
    "\n",
    "\n",
    "from freq_amount_funcs import (\n",
    "    process_surface_temperature_cases as pstc,\n",
    "    calc_Fd_and_histNormCounts as calc_Fd_n_Hist\n",
    ")\n",
    "\n",
    "# Initialize output dictionary\n",
    "dist_dic = {}\n",
    "\n",
    "# Process each model's precipitation data\n",
    "for model, Ts_dict in hourly_prec_dic.items(): # change dictionary here to process\n",
    "    # Skip models with fewer than two temperature states\n",
    "    if len(Ts_dict) < 2:\n",
    "        print(f\"[{model}] Skipped: not enough temperature states.\")\n",
    "        continue\n",
    "\n",
    "    # Sort temperature keys numerically\n",
    "    available_Ts = sorted(list(hourly_prec_dic[model].keys()))\n",
    "    arrays = [Ts_dict[Ts] for Ts in available_Ts]\n",
    "\n",
    "    try:\n",
    "        # Call processing function\n",
    "        f_dists, a_dists = pstc(\n",
    "            sfig, arrays, available_Ts,\n",
    "            boundaries, boundaries[0], delLogR,\n",
    "            moe, calc_Fd_n_Hist,'notes_from_runs_RCEMIP_06_12_25',model\n",
    "        )\n",
    "\n",
    "        # Store results per temperature\n",
    "        dist_dic[model] = {\n",
    "            Ts: (f, a) for Ts, f, a in zip(available_Ts, f_dists, a_dists)\n",
    "        }\n",
    "\n",
    "        print(f\"[{model}] Processed successfully.\")\n",
    "\n",
    "    except Exception as e:\n",
    "        print(f\"[{model}] Failed during processing: {e}\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "a07909f5-4495-4327-9761-2544a63adf80",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<xarray.DataArray 'prec_mp' ()> Size: 8B\n",
      "np.float64(0.013990614149305556) <xarray.DataArray 'prec_mp' ()> Size: 8B\n",
      "np.float64(0.7018217863859953)\n"
     ]
    }
   ],
   "source": [
    " Fd, less_r_min, _ = calc_Fd_n_Hist(array_prec_dic['310K'], boundaries, 0.1, delLogR)\n",
    "print(Fd, less_r_min)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "cab698a9-9c7c-4fbd-980c-565824eabdc7",
   "metadata": {},
   "source": [
    "### 2.2.1 Check areas of amount curves--compare to prec array means"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "id": "7cbe9f31-555f-41c6-9df8-d50e8b974196",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'FV3': {'280K': np.float64(1.8226054489795922),\n",
       "  '290K': np.float64(2.691632808859069),\n",
       "  '300K': np.float64(3.667573720341559),\n",
       "  '310K': np.float64(4.7050804691649875)}}"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#check areas under amount distributions\n",
    "amount_areas = {}\n",
    "\n",
    "for model, ts_dict in dist_dic.items():\n",
    "    amount_areas[model] = {}\n",
    "\n",
    "    for Ts, (freq, amount) in ts_dict.items():\n",
    "        area = np.sum(amount * delLogR)\n",
    "        amount_areas[model][Ts] = area\n",
    "amount_areas"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "id": "83143617-5c52-4f73-9028-c5f79bc40d82",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'FV3': {'280K': array(1.8213593, dtype=float32),\n",
       "  '290K': array(2.6885464, dtype=float32),\n",
       "  '300K': array(3.665273, dtype=float32),\n",
       "  '310K': array(4.7021155, dtype=float32)}}"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#check mean of preciptation arrays\n",
    "prec_array_means = {}\n",
    "\n",
    "for model, ts_dict in hourly_prec_dic.items():\n",
    "    prec_array_means[model] = {}\n",
    "\n",
    "    for Ts, arreglo in ts_dict.items():\n",
    "        mean = np.mean(arreglo)\n",
    "        prec_array_means[model][Ts] = mean.values\n",
    "prec_array_means"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "576bceda-aa94-4136-9871-fb0efceac39a",
   "metadata": {},
   "source": [
    "## 2.2.2 Get hydrological sensitivity of different integrations"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "id": "a92a2e9d-9cbf-4e8a-89ec-2777c7a40a49",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'FV3': {'280-290K': np.float32(0.3894176),\n",
       "  '290-300K': np.float32(0.30990207),\n",
       "  '300-310K': np.float32(0.24910975)}}"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#build dictionary of form hydro['FV3']['280-290K'] = 0.X\n",
    "for model in hourly_prec_dic:\n",
    "    hydro_frac_increase = dict()\n",
    "    holder = dict()\n",
    "    for i in range(len(surf_temps)-1):\n",
    "        \n",
    "        holder[surf_temps[i][:-1] + '-' + surf_temps[i+1]] = np.log((hourly_prec_dic[model][surf_temps[i+1]].mean() / hourly_prec_dic[model][surf_temps[i]].mean()).values)\n",
    "        \n",
    "        hydro_frac_increase[model] = holder\n",
    "hydro_frac_increase"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "id": "8f145094-57ee-417e-9057-4128fd593aa8",
   "metadata": {},
   "outputs": [],
   "source": [
    "#these values are changes in 2nd to last level of qv, computed from FIG3 notebook\n",
    "dic_qv_changes = { 'FV3': {'280-290K': 0.83, '290-300K':0.74, '300-310K':0.65}}"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "35214e98-302a-460c-8c3c-d346a0851891",
   "metadata": {},
   "source": [
    "### 2.3.2 calculate actual fractional change in surface specific humidity"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "9abf49f6-2854-4aec-9b0b-1f04b7ae0d12",
   "metadata": {},
   "source": [
    "### 2.3.3 Save results into a DataFrame"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "id": "eca04334-e0f5-4ee1-82eb-074d27668af0",
   "metadata": {},
   "outputs": [],
   "source": [
    "#location of data frame to be specified\n",
    "save_df_dir_hourly = r\"...\""
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "id": "3b2bf95c-4e88-4975-8f16-d12592bc7dd8",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Unnamed: 0</th>\n",
       "      <th>model</th>\n",
       "      <th>dellnP_280-290K</th>\n",
       "      <th>dellnP_290-300K</th>\n",
       "      <th>dellnP_300-310K</th>\n",
       "      <th>dellnqv_280-290K</th>\n",
       "      <th>dellnqv_290-300K</th>\n",
       "      <th>dellnqv_300-310K</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0</td>\n",
       "      <td>FV3</td>\n",
       "      <td>0.389418</td>\n",
       "      <td>0.309902</td>\n",
       "      <td>0.24911</td>\n",
       "      <td>0.83</td>\n",
       "      <td>0.74</td>\n",
       "      <td>0.65</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   Unnamed: 0 model  dellnP_280-290K  dellnP_290-300K  dellnP_300-310K  \\\n",
       "0           0   FV3         0.389418         0.309902          0.24911   \n",
       "\n",
       "   dellnqv_280-290K  dellnqv_290-300K  dellnqv_300-310K  \n",
       "0              0.83              0.74              0.65  "
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df = pd.read_csv(os.path.join(save_df_dir_hourly,'FIG1_qv2ndtoLast.csv'))\n",
    "df"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "3d6b7647-7d89-467f-83e5-72fb0ba9024f",
   "metadata": {},
   "source": [
    "# 3. Make Plots"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "60c7426e-8869-4555-a97c-0eedd89293b7",
   "metadata": {},
   "source": [
    "### 3.1 Define functions for plots"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "id": "53f3f842-5d1f-404d-b8d1-7f965ef97575",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Define colorblind-friendly colors for temperature cases\n",
    "colors = ['#377eb8', '#4daf4a', '#984ea3', '#e41a1c']  # Blue to red\n",
    "#selected_labels = [0.1, 1, 10, 100, 1000, 3000]\n",
    "from first_part_story_funcs import (panel_stair, plot_dual_row_transition_panels, plot_1x3_freq_amt,plot_2x3_freq_amt)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "3eb33844-9073-4c10-a5e9-ae4ea285f889",
   "metadata": {},
   "source": [
    "### Make plot"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "id": "dc5c08bb-2894-4696-89a9-4964ef21594c",
   "metadata": {},
   "outputs": [],
   "source": [
    "errors_dict = {\n",
    "    \"FV3\": {\n",
    "        \"280-290K\": 0.08,   # \n",
    "        \"290-300K\": 0.10,\n",
    "        \"300-310K\": 0.22\n",
    "    }\n",
    "    }\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "id": "f18b823a-0b76-489b-9818-e8fe130bc127",
   "metadata": {},
   "outputs": [],
   "source": [
    "#location of figure saving and name the figure\n",
    "sfig = r'...'\n",
    "figname = '...'\n",
    "save_fig = os.path.join(sfig, figname)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 81,
   "id": "9cd9e81f-7878-4e9e-8f50-bb843d498daa",
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAp4AAAEHCAYAAAAH90aFAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAAB/qUlEQVR4nO3dd1gU19cH8C9FQFB6UVG6gg0QVBBEMFiw925EjAU1Qiwx0dgb0ajYu7FhiyU2FKOx8bMCig0bSrVQlSr9vn/w7oSFpewKW+B8nidPmLIzZ9c5O3dvGznGGAMhhBBCCCE1TF7SARBCCCGEkLqBCp6EEEIIIUQsqOBJCCGEEELEggqehBBCCCFELKjgSQghhBBCxIIKnoQQQgghRCyo4EkIIYQQQsSCCp6EEEIIIUQsqOBJCCGEEELEggqepEadO3cOvXv3RpcuXeDq6ooOHTqgR48e8Pf3R3x8PADg/fv3cHNzg6amJjQ1NeHm5sb3n6OjI9zc3AAAM2bMgJWVFeTk5ODo6AhXV1c4ODigS5cu2LRpE3JycvjOX3r/vXv3Vjn20q8tHZempia2bt0KW1tbyMnJoXnz5li/fn2Z929nZwc9PT1MmTIFALBt2zZ0794d3bt3h4uLC9q2bYu1a9dC2IeICfrcunTpAmtra/Ts2ROhoaFCHU8YK1eu5D6bkubMmYOBAwcKdazw8HAsWbKkzPqzZ8/CyMgIWVlZ3xBp9Xv//j169eoFBwcHdOzYESNHjiyzT2BgINzc3CAnJwcTE5My146VlZXA90wqFhYWBjc3N6ioqKBRo0bcNW9ra4vx48fj0aNHZV6zefNmtGvXTqjzbNiwATdu3BDqNaWv/QEDBnAxVgdZyxNCysUIqSEzZsxgtra27PXr19y6goICtnHjRgaALV++nG9/V1dX5urqWuY4UVFRfOv37dvHALCoqChu3evXr5mbmxtr27YtS0hI4Hu9oP2rqqLXurq6sqioKJaWlsZUVVXZ8OHDBR5jzZo1bN26ddyyrq4uu3z5MrccEhLC5OTk2I4dO4SOjxdHyc+noKCATZw4kWloaLDo6GiRjlkVvM+mJH9/fzZnzpxvPg5jjN26dYt169aNFRQUfFOc1e2HH35gXbp0YYwxVlhYyFasWFHuvgDY4sWLy6zft2+fwPWkaoyNjZmnpye3nJ+fz7Zv387U1NTY5s2b+fY9fvw4Gz16tNDHF/bfR9C17+npKfA7TRSylieElEdRckVeUpsFBARg+/bteP36NUxNTbn1CgoK8PHxwf/+978qH8vAwABr1qypcJ/mzZsjMDAQNjY2GDt2LP755x+RY6+qNWvWwMDAAPXr18fgwYNx4sQJfP78GVpaWnz7BQQE4MqVK9zyqVOn0KVLF265ffv20NTUxMuXL6slLgUFBUyfPh179uzBxYsXMXXq1Go5blX89NNP1XYsFxcXvs9NWrx9+5a7puXl5fHbb78JfYzu3bvj69ev1R1anaWoqAhvb28oKChgypQpsLW1RefOnQEAw4cPx/Dhw2s8huq89oUhrXlCSHmoqZ3UiHXr1sHNzY2v0FnSggUL0KNHj0qPs2TJEhw/fhwdO3asdF9VVVX4+vriypUrePz4sdAxV1V0dDTc3NzQsWNH1K9fHwDg5eWF3NxcHD58mG/fe/fuwdTUFPr6+ty6koXOgoICbN26FQoKCpg4cWK1xZiXlwcAUFJSwrlz5+Do6Ag5OTns378fI0eO5JbDw8MBABcuXICjoyOcnJzg7OyM6dOnIz09nTseYwxLliyBiYkJXFxc8P333yM5OZnvnMuWLRPY/P7x40eMHj0abdu2haurK+zt7bF8+XIUFBRgy5Yt+P333wGAa4bev38/X8wlmzzz8vLwyy+/oHXr1nBwcEC7du1w4MABbvuuXbu4rg9nzpzB0KFD0a5dOzg4OCAiIqLSz+3OnTtwc3ODvb092rZti1GjRuHjx4/cud3c3PDo0SMEBQXBzc0N06ZNq/o/yv9zc3NDfn4+LCws8ODBA65Jfv369ZgwYQJcXV2hoKCAM2fOcDG5urrC0dERLi4uGDt2LD59+sR3zG3btsHc3ByOjo7o27cvNm3axHUR+fvvvzF37lyYmJjAxMSEe82UKVMENgW/f/8eI0eORLt27eDm5oZu3brxddsYPHgw97rNmzejd+/eMDc3x+TJk1FQUMB3rIsXL8LR0REODg5wcHBAr169cPnyZZw7dw7m5uaQl5eHm5sboqKiAADjxo2DlpYWHBwckJaWJvRnO2HCBOjp6WHdunUA+K+H6Ohobr/du3fDwcEB3333HTp16oTJkyfj06dPyMzMhJubGz59+oT9+/dz12Tp971p0yb07t0benp6GDhwYLnXPs/atWvRo0cPmJmZoXfv3oiLiwMAXLt2rcx1/vfff5eJWZJ5snLlSnTs2BHfffcdHB0dMXPmTGrWJ99G0lWupPbJyspicnJy7KeffhLqdYKa2hcvXsz27dvHt66i5u+QkBAGgG3fvr1K+1dG0GtLN/0zxlhRUREzMTFh7dq141s/efJkdubMGYHH9vLyYtra2sza2po9fPiQb9uHDx+YmZkZW7p0aaUxlv7cMjIyWL9+/Vjjxo1ZYmIiFzMA5u7uzjIzMxljjI0YMYI9efKEBQUFMSUlJXb37l3GGGN5eXls4MCBzMPDgzvmpk2bWMOGDdnLly8ZY4y9f/+etWjRokzTX+nmwKysLNaiRQs2btw4VlhYyBhj7O7du0xBQYF9/vxZ4Gt4eDFfv36dWzdq1CjWunVrlpqayhhj7PHjx6x+/fps79693D7Xr19nANiECRO4c/bp04d169atws/x8ePHTEVFhe3atYsxVtyMPnbsWGZpacmys7P5Pu+SzbwVgYCmdl4XjdL7tW3blvv3+vnnn9mFCxe4mE6ePMkYK77OfvzxR9amTRuWn5/PGGPs3LlzTE5OjgUHBzPGGEtLS2P29vZlrtvFixczY2NjvvOWbgrOyspiFhYWbMaMGayoqIgxxtiJEydY/fr1+Y7l6enJGjRowM6fP88YYyw+Pp7Vq1ePBQQEcPtcvnyZKSgosCtXrvDFPmDAAMYYYw8ePGAA2M2bN7nXZGRksNatW1fabFy6qb2kPn36MAMDA26Zdz3w4g8NDWUNGjRgKSkpjDHGcnNzmbOzM991Vl5Tu6enJ2vYsCH766+/GGOMPXr0iGvGF3Qde3p6MjU1NbZ//37GWHFu9ezZk7Vv3577fAVd56VjLu/45b2+uvLk1KlTzNTUlOXk5DDGiq8tc3Nzkb5LCeGhGk9S7T5//gzGGBo0aCD0a8PDw/kGYezfv1+o12tqagIAUlNThT53RUaOHMnFJGgwiZycHDw9PfHo0SOutvXr16+4fv06+vTpI/CYf/75J5KSkjBjxgy4uLjg8uXL3LbCwkJkZmZWuTmW97m5urrC3d0dBgYGuHPnDvT09Pj2GzNmDNTU1AAAx44dQ9u2bbF8+XK4u7vD0dERAFCvXj1MnjwZQUFBXO3HmjVrMGDAAFhaWgIAmjRpgiFDhlQa19GjR/H69WssWLAA8vLFXzeOjo747bffoKSkVKX3xhMZGYmjR4/Cx8eH685gbW2NAQMGCBx0MW7cOO6cpWvtBFmzZg10dHS4mmd5eXksWLAAr169wtGjR4WKtaSSNWdubm5cLXNpgwYN4v691qxZgz59+mDNmjUwNTXlPms5OTlMmzYNz54947qTrFmzBs7OzlzTsrq6OiZPnixSrEeOHEFkZCQWLFjA1d4NHToUDRs2xLZt2/j21dXVRd++fQEAhoaGaNWqFd9nvHz5cjg4OKBbt25c7HPnzsV3330HAOjQoQPs7Oywfft27jUBAQEYOXIkFBQURIofKP4OqCj/4+LikJeXh9jYWADFrQJ//vknrK2tq3R8LS0tDBs2DABga2tbppVDUDyenp4AinNrzpw5CA0NxfXr16t0PmFVZ57ExsYiKyuLq/VXV1fHqVOnYGBgUCOxk7qB+niSaqelpQU5OTlkZGSU2TZv3jzcvXsXycnJ0NTULNPX09bWlq/JSNiRv58/fwYAaGtrC/W6ks2Ntra22LBhA9/2Y8eOcc2U0dHRGD9+fJljeHp6YtmyZdi7dy82bdqEU6dOoX///lBULD/N5OXlMXHiRPz999+YMWMGXr9+DQBo2rQpEhISqhx/6c+tPEZGRmXWPXz4EFpaWnyfQV5eHoyNjfH+/Xs0bdoU8fHxsLCw4Htded0oSgoLC4O8vDzMzMz41i9durTS1wqKEwBatGjBt97S0hLHjh1DUlISX0G7adOm3N8aGhr48uVLpce3sLDgay61sLCAvLw8wsLCMGHCBKFjBoDx48fzXcfljXIu798mISGB7zVFRUUwNjbmro/nz59jwIABfK+ryr+NIA8fPoS8vHyZPpEaGhplmr5Lfr68fUp+xmFhYWWO06xZM/j4+HDLU6dOxfTp05GYmAh9fX3s2bMHFy5cECl2ns+fP1eY/71794aHhwfs7OzQqVMnDBw4EGPGjKnyd4agf6eKGBsb8y3z8ujZs2dcIbw6VWeejBs3DidPnoSFhQW+++47DBw4EKNGjeK6GBEiCip4kmqnqqoKW1tbgf0s/fz8ABTfjKtSUBK24Hn37l0AgJOTk1CvE2bqFBMTE4H7m5qawtXVFUeOHMHatWuxb98+bNq0iW+foqIiFBYWol69enzrW7dujYsXLyI7OxuqqqpCxS6M8mqS3N3dcfDgQYHbSvb1lCUl32t5fe8kobxrrbx/m9atWws9tY8ggj6D0n0yea5evVrhDyagbLxycnJCTwk2atQozJkzB3v37oWrqyvMzMzQqFEjoY5RUkFBAUJDQ+Hs7FzuPkpKSjh79ixevHiBo0ePYtu2bVi8eDFOnTqFXr16VXqOb6mNFUSYf5eaUFGeaGtr43//+x9CQkJw7NgxLFu2DAsXLsTVq1eFnqKKEB5qaic1Yvbs2QgODsarV6/Eds7s7Gxs3rwZPXr0qHKzmaBm82/h5eWFlJQUbNy4EVlZWWjdujXf9lu3bpWpnQKKB3SoqalBWVm5WuOpCnt7+zIDChhj8PLyQmJiItTV1dGsWTNERkby7cMbEFLZsYuKivD27Vu+9Rs2bODmceU18wHFBXNBNeUAYGdnBwBlrqlXr16hWbNmZboVCMve3h5v3rzhKzxFRkaiqKgI9vb233Tsb4np9evXKCws5Fv/888/49mzZwCANm3aVOnfRkNDo8yPCN4gl5LnKyoqKjPDwv79+3H8+HGRYi8pNjaW78eYmpoaxo0bh127dmHLli3fPAMDr/vK7Nmzy93n5cuXePbsGVq2bIlly5bh9evXaNu2LV+Tf8lrMjs7G/n5+SLHFBMTw7f85s0bAMX/bkDxvwvA/wOv9L9L6ZjElScPHjxATEwMOnTogHXr1uHNmzdQU1PDvn37qnwMQkqjgiepEWPGjMG0adMwePDgMoWaiIgIRERE8H2RfqvIyEj06dMH9evXx6FDh6r8unv37lVbDMB//eHmz5/P9esq7d9//+XrYnD79m2cPHkSkyZN4mofPn78CBMTE5GapIW1aNEiPHr0CCdPnuTWbd26FXFxcdxo/Llz5+Ls2bPczezTp09V6vc4atQotGjRAitXruQKdNeuXcPWrVu5mi3e/1NTU/HgwQO4u7sLPJaFhQXGjh2LzZs3c10qnjx5grNnz2Lx4sUivvv//PLLL/j8+TP27NkDoPjmvmLFCrRo0QKjRo365uOLGlN6ejr8/f25defOnUNgYCCsrKwAFP/b3L59m7umMjIyBOaAvb09Pn/+jCdPngAobgrn/c3D+/datGgRV9h6+/Ytli5dKnQN16JFi/DgwQNcvXoVQPHnuXjxYqSkpPDt5+3tjejoaDx69Ahdu3YV6hw8BQUF2LlzJ2bNmoVNmzZVWON57949LF68mK8wX1BQwPcjsVGjRlw/0cGDB3/TdEUJCQncv0d+fj7WrVuH9u3bc+9VU1MTZmZmXK12Tk6OwNySRJ5cvHiR79pjjKGoqKjMD2pChCLJkU2k9jtz5gzr2bMnc3Z2Zs7Ozsza2pp16tSJLVy4kBsZGR8fz1xdXZmGhgbT0NBgrq6ubM+ePQKP9+OPPzJLS0sGgDk4ODBXV1fm4ODAOnfuzDZs2MC+fv3Kt//kyZOZmZkZA8BsbW2Zg4MD339KSkrlxl76XEOHDq3Se/7hhx+YiooKN2q7pNTUVLZ48WJmZ2fHfSZ2dnZs8+bN3ChlxhiLi4tj+vr67Ndffy33PII+t9OnT5fZ799//2UODg4MALOxsWGTJ08us8/FixdZx44dma2tLevSpQv74YcfuBGxjBWPSF60aBEzMjJizs7ObOjQoWzZsmUMAHN1dWV37txhS5cu5T4vV1dXdv/+fcZY8Qj4kSNHsjZt2jBXV1fWp08fvocK5Ofns/79+zMbGxtmb2/PAgMD2dmzZ/li3rlzJ2OseATyr7/+ylq1asU6duzIbGxsuBHDjDF2+PBhZmNjw/2b3blzh+3cuZMvLt7IfEHu3r3LXF1dmZ2dHWvdujUbMWIEe//+PXdu3udtYGDAXF1d2b///ivwOBcuXGCurq4MADM2Nmaurq4sNDS0zH7Pnz/n9rO0tGT9+/cvs8+9e/eYm5sba926NevatSsbNmwYi4mJ4dtn69atzNTUlDk6OrLBgwezvXv3CpzJYd68eczMzIy5u7uzBQsWsHHjxnHXTm5uLmOseEaFUaNGsRYtWjA3NzfWrVs3duvWLe4Y33//PTMwMGAaGhpcvIMGDeI+l/Hjx/N9Dg4ODqxDhw7M0dGR/frrrwJHrLu4uDB/f3+Bn2VJoaGhzNXVlSkrK3P/Bi4uLszGxoZ5enqysLAwvv137tzJdz2cPXuWvXr1io0ePZp16NCBubm5MTs7O+br68uN3ObF3bx5c9a5c2c2cOBAlpeXx/e+edc8j6Brv3///szAwIB16dKFLVq0iLm7uzMTExPm4eHBYmNj+eK8ceMGa926NXNwcGDDhw9nf/75J1/MjEkmTx48eMAGDhzIHB0duc9q6dKl3Ih8QkQhx5iQnXIIIYRItRs3bqBr166Iiorim7tTGjHG0LZtWwQHB5d5+AIhpPahpnZCCCFit2DBAgDFXQecnJyo0ElIHUGj2gkhpBbZu3cvNm/eDKB48Nwvv/yCQYMGSTiqsq5fv442bdpAW1sbf/31l6TDIYSICTW1E0IIIYQQsaCmdkIIIYQQIhZU8CSEEEIIIWJBBU9CCCGEECIWVPAkhBBCCCFiQQVPQgghhBAiFlTwJIQQQgghYkEFT0IIIYQQIhZU8CSEEEIIIWJBBU9CCCGEECIWVPAkhBBCCCFiQQVPQgghhBAiFlTwJIQQQgghYkEFT0IIIYQQIhZU8CSEEEIIIWJBBc86JigoCIMHD4abmxs6d+4MOzs7bN26FYwxvv0SEhLg5eWFdu3awc3NDe3bt8eWLVvKHO/Lly/w8vKCvb09OnTogJEjRyIhIaHCGBhjOH78OHr16gV3d3d07twZDg4OOHbsWJl9P378iAkTJqBTp05wcHCAo6Mjrl69Wma/+Ph4DBo0CA4ODrCzs4O3tzcyMzO57YGBgXBzc4OcnBxMTEwwbNgwbpu7uzvq1asHa2trLFu2rNLPkNR+Vc2TtLQ0zJo1C46OjnBycoK9vT2OHj1a5nii5AkAXL58GcOGDYObmxtcXV3RunVrTJs2DWlpaXz7McawcuVKtGvXDp07d4aLiwtCQ0PLHI/yhFSn+/fvw9PTEy4uLujatSvatm2LsWPHIj4+nm+/Xbt2wc7ODl26dEHHjh1x+fLlMseq6RwBiq///v37Q05OrtzjRUREoFu3bnB2dka7du0wf/58FBQUcNv37t0LR0dHyMnJwcrKCjNmzAAAJCUloXPnzpCTk0PHjh2xa9euSmOvsxipU3R0dNjatWu55fv37zMlJSW2atUqvv2+++471r59e5adnc0YY+zdu3esYcOGbM+ePWX2GzZsGCsqKmKMMTZx4kTWrl07VlBQUG4MGRkZDAA7ceIEt+706dMMADty5AjffsbGxmzYsGHc8QIDA1m9evXYvXv3uP1ycnKYlZUVmz17NmOMsfz8fNazZ0/Wv3//MucGwBYvXswt5+fns/HjxzMfHx9WWFhYbsykbqlKnhQWFrIOHTqwzp07s6ysLMYYY48ePWLKysrs1KlTfMcTJU8YY2zIkCFs/vz53HJKSgozMTFhI0eO5Ntv6dKlzMLCgn3+/JkxxtihQ4eYuro6i4qK4vahPCHVbfbs2Wzs2LHcdZydnc06duzIHB0duX0OHDjAtLS0WExMDGOMsZs3bzJlZWW+73DGaj5HAgICmJ2dHevTpw8rr+iTmJjI9PX12ebNmxljjGVmZjJra2vm4+PDt19UVBQDwPbt28ety8jIYL169WKrV6+uMF7CGBU86xgPDw+Wl5fHt65Xr17M0tKSb12DBg3YnDlz+Na1b9+eDRgwgFu+evUqA8AeP37MrYuJiWEA2PHjx8uNITs7m/Xt27fM+pYtW7KePXtyy/v372cAWEhICN9+tra2rHfv3tzynj17mIKCAktJSeHW3bx5kwFg9+/f53ttyRtqZmYmfVEQgaqSJzdu3CjzA4oxxgYOHMhatWrFLYuaJ4wVF2TT0tL41g0aNIjZ2tpyy+np6UxVVZVt3LiRbz8zMzM2depUbpnyhFS3ly9fsk+fPvGtmzlzJtPU1GSMMVZUVMSMjIzYzJkz+fbp2rUr69WrF7dc0znCGGPnz59n2dnZbPHixeUWPBcsWMD09PT4CrsHDhxgCgoK7P3799y60gXPhIQE1qlTJ3b48OEKYyXFqKm9jrl06RLq1avHt65+/frIy8vjWzdq1ChcuHABiYmJAICQkBA8e/YMjRs35va5ePEi1NTU0LZtW26dkZERDA0NcfHixXJjqF+/Ps6fPy9wfck4Pn36BAB85wQAQ0ND3LhxA0VFRVwcLVq0gLa2NrePo6Mj5OXly40jMTERPXr0wNixYzF37txyYyV1U1XypKLrMyIigtsuap4AgK2tLdTV1bnl4OBg3Lp1C7Nnz+bW3bhxA9nZ2XB0dOR7badOnfiOT3lCqpulpSUMDAy45WfPnuHUqVPctfLs2TPExsaWuTadnJxw9epVLp9qOkcAoG/fvqhfv36Fx7p48SLat28PBQUFvlgLCwvxzz//CHzNmzdv4OHhgRUrVmD06NEVHp8Uo4JnHVdYWIi7d+9i7NixfOt37dqF/v37w8zMDK1bt4aDgwPatWuHRYsWcftERkaiUaNGZfrLGBoa4s2bN0LFkZqaiufPn/PF0bx5cwBAVFQU375xcXHIzs5GcnIyF0eTJk349lFSUoKurq7AOCIjI9GjRw8sW7aMvihIlQjKk4quTwCIjY0FUD15smXLFpiammLw4MHYvHkzXxyRkZEAUCYHDA0NERMTw93cKU9ITTl58iSsrKzQqVMnzJw5E/PmzQNQ8bWZn5+PmJgYbr+azJGqEpQjhoaGACAwjgcPHmDIkCHYt28fvvvuO6HPV1dRwbOO27BhA3R0dDB//ny+9VOmTMG5c+cQERGB58+fIzo6Gv3790fDhg25fTIzM6GsrFzmmMrKysjKyhIqjsWLF6NLly7w8vLi1vXp0wctW7bEkiVLkJGRAQA4ePAgXr58CQBch29h4zhx4gSeP3+O9PR0oWIkdZegPLGzs4O7uzv++OMPbhDEv//+yw1+E/X6FOTHH39EVFQUzp49C19fXyxfvpzbxhscVPocvOXs7GyR4qA8IVU1dOhQvHz5Evfv38fWrVsxceJEAJVfm7zrrqZzpKoExVE61pL27t2L6OhoLsdI1VDBsw67dOkSduzYgUuXLkFFRYVb/+TJE+zatQu//vorjIyMABQ3e6SkpKBv377cfg0aNEBubm6Z4+bm5kJNTQ0AsH//fri5uXH/hYeHl9l/z549uHPnDk6cOMH3i1dZWRm3bt1Cy5Yt0aNHD3Tp0gXPnj3DrFmzICcnBy0trSrHUZKvry86d+6MESNG4Ny5c1X8tEhdVV6eAMDZs2fRt29fDB48GC4uLjhx4gRWrFgBANDR0QFQfXkCFDf7/fzzz1i6dClXo9qgQQPueKWPDwCqqqpVjqMkyhMirFatWmHVqlXYu3cv7ty5U+m1ybvuajpHqkpQHKVjLWnFihUwMjKCh4cH7t+/L9S56jIqeNZRly9fxpw5c3D16lU0bdqUbxuvRtHc3Jxvvbm5OW7evIno6GgAgIWFBT59+lRmipkPHz5wzZDjx4/HjRs3uP9sbW359t23bx92796Nq1evQkNDo0ycurq62Lx5M+7evYtbt25hzZo1+PLlC6ysrLj+OhYWFvjw4QPf6/Ly8pCcnMzFUZKqqioCAwPh5OSEYcOG4cKFC5V8WqSuqihPgOKb0cqVK3H79m0EBwdjx44dyMvLQ4MGDWBhYQHg2/JE0M24devWKCwsxLNnz7jj845X+vjGxsZQUlLi9qM8IdWpvOsTAMLDwyu8NuvVqwdjY2MANZ8jVSUoR3jLgnJET08P165dQ7NmzdCzZ0+EhIQIdb66igqedVBgYCDmzJmDy5cvc4m/a9cufP78GQC4Ws7SCfj+/XsA/9Wg9O7dG1lZWXzJHRcXh/j4ePTq1avSOHbv3o09e/bgn3/+4WovV69ezbePoA7dN27c4Otz1rt3b7x+/ZqLHyieX66oqKjcOHg3VUdHRwwdOhSXLl2qNF5St1SWJwBw8+bNMje+69evY8SIEdwAhW/JEx0dnTI3Y14e8mpU3dzcUL9+/TI1Lnfv3uU7PuUJqW6WlpbcAFSektdnmzZt0KxZszLX5p07d+Du7s79KKrpHKmq3r17IzQ0FIWFhXyxKigooEePHgJfo6+vj2vXrsHQ0BA9evTAw4cPhTpnnSTRMfVE7M6cOcP09fXZuXPnWEhICPefnZ0dN+dfQUEB69ixI3NwcGDp6emMMcZiY2NZkyZNWI8ePfiO17VrVzZixAhu7rXJkydXae61rVu3MiMjI3bt2jW+OBo3bsy3n46ODrt27Rq3/Mcff7A2bdpw8yYy9t/8hD///DMXf69evao0P2FmZiZzcXFhKioq7J9//qnk0yN1RVXyhDHG7O3t2Z9//skt//XXX6xp06bsw4cPfMcTNU8AsD/++INbfv/+PWvRogWzt7fnm09z6dKlrHnz5uzLly+MMcYOHz5c7jyelCekuhgbGzMfHx/uOv7y5QtzdnZmzZo1YxkZGYyx4umItLW1WWxsLGOMseDgYIHzeNZ0jvBUNJ0Sbx7PrVu3MsYYy8rKYra2tlWax/PTp0+sZcuWTFtbmz169KjCmOs6KnjWMfXq1WMABP5X8ib16dMnNmnSJNauXTvWuXNn1rZtWzZz5kyWmprKd7zU1FTm6enJ7OzsWPv27dnw4cPLzOtWWnx8fLkxlP5CmDBhAjM1NWXOzs7MycmJTZ06lSUnJ5c5ZlxcHBs4cCDr2LEjs7W1ZZMnT+a++Bhj7MKFC8zV1ZUBYMbGxmzo0KHctoyMDNa5c2emoqLCXF1d2ZMnT4T5SEktVNU8mT9/PjMzM2MODg6sc+fObPTo0dxE2SWJkieMFf9Ac3V15Saqt7GxYbNnz+abi5Ox4vkSly9fzmxsbJizszPr3Lkze/DgQZnjUZ6Q6nTs2DHm4eHB7OzsmIuLC7O1tWUTJ07kCpk8O3fuZO3atWMuLi6sQ4cO7NKlS2WOVdM5wru2jY2NGQDm6urKBg0aVOZ4z549Y9999x1zcnJiNjY27Ndff+Wb03fPnj3MwcGBAWCWlpbsxx9/5LZ9/PiRWVlZMU1NTebq6soSExMrjb8ukmOsVB01IYQQQgghNYD6eBJCCCGEELGggichhBBCCBELKngSQgghhBCxoIInIYQQQggRC0VJB8ATGBiIoKAgqKmpwcTEBN7e3nzbMzIysGrVKhw6dAjx8fHc+qysLMyZMwdGRkaIjIzEqlWrYGBgIO7wCSGEEEJIJaRiVHtmZibs7OwQEREBRUVFdOrUCQEBAXxPzgkKCoKWlhYGDBiAT58+cetXrFiBhg0bwtfXFxcvXsTx48dx4MABSbwNQgghhBBSAamo8bx37x5MTU2hqFgcTocOHRAUFITp06dz+3h4eHCPaiwpKCgIf/zxBwDA0dERnp6e5Z4nNzeX7ykjRUVFSE1NhY6ODt8zwgmpCxhjyMjIQJMmTSAv/1+vG8oTQv5DeUJI5crLE0GkouCZlJSEhg0bcsvq6upISkoS+rXq6upISUlBUVGRwDfu5+eHpUuXVk/QhNQScXFxfM8hpzwhpCzKE0IqVzpPBJGKgqeenh4yMjK45fT0dFhaWgr92vT0dOjo6JRb2p43bx5mzZrFLaelpcHIyAhxcXFQV1f/hndAiOxJT09Hs2bN+H70AZQnhJREeUJI5crLE0GkouDp6OiIqKgoFBQUQFFRESEhIfD19UVsbCyaNm1aYbWth4cHHjx4gE6dOuHevXvo3bt3ufsqKytDWVm5zHp1dXX6oiB1VulmQcoTQsqiPCGkclXpZiIV0yk1aNAA69evh4+PD37++Wd4enrC3NwcgwcPxpMnTwAAz549w5YtW5CVlYUVK1bg8+fPAICZM2fixYsXWLFiBU6ePInVq1dL8q0QQgghhJBySMWodklJT0+HhoYG0tLS6BcqkVnv37/Hnj17MHXqVOjr61f5dVW9/ilPiKx6//49Ll26hPfv36Nx48ZQUlJCdnY2lJWV0bt3bzRu3LjSY1CekLoiJSUF169f57ovFhYWwtTUFO3atYO2tnaFrxXm+peKGk9CiOiePn2K+vXr4+nTp5IOhRCpYmhoiKFDhwIA+vfvj/Hjx2Pq1KnQ1tbGuXPnJBwdIdIjKSkJBw4cgL29Pby8vODl5YWRI0ciMjISt27dqtZzUcGTEBnGGENycjIcHR3x7NkzSYdDiNSTk5ND06ZNkZKSIulQCJEaQUFBaNOmDUxNTbl1DRo0QI8ePar9XFTwJESGRUdHw9TUFNbW1vjy5Qvi4uIkHRIhUi0/Px+vX7/me0AJIXVZdnY23r17h+bNm5fZZmJiUuGgbVFIxah2Qohonj9/DldXVzRs2BDGxsZ4+vQpmjVrJumwCJE6586dg5KSEpKTk6GpqYnhw4dLOiRCpEJqaioACOybKScnByUlpWo9H9V4EiKjCgsLkZOTw82bZm1tjYiICBQVFUk4MkKkD6+P55w5c2BjY4M9e/YgOztb0mERInHiftIWFTyJ1EtJSYGXlxdmzJgBHx8f9O/fH5GRkdz2Bw8ewMPDA7NmzcKQIUOwdetWblteXh4mTpyIiRMnYsCAAThx4oTAc5w5cwbt27eHubk5tm3bBgD4/fffoa+vj2nTptXsGxRRZGQkPn36hP3792P//v0IDw/nmkwIIeXr0KEDcnNz8fz5c0mHQojEaWlpASgemS4O1NROpF5cXBzq16+PzZs3AwA2b96MiRMn4saNGwCAGTNmYMqUKZgwYQKys7Ohra0NDw8PmJubY+PGjahXrx62b9+OzMxMWFpawsXFBY0aNeI7x8CBAxEeHo5nz55h2rRp+PTpEx4/foz//e9/aNGihbjfcpVERETghx9+QP369bl1hw8fxtOnT2FhYSHByAiRfvLy8tQ6QAgAVVVVWFhY4M2bN3yDiwDgxYsXiI+PR/fu3avtfFTjSaSera0tXy2mmZkZ3r9/zy0bGhoiISEBQHHtaGFhIXjT0x46dAh9+vQBUDxCr1OnTjh27FiF53v+/Dlmz56NzZs3S22hMy8vD3l5eXyFTgCwsrLCy5cvkZ+fL6HICJF+r1+/Rl5eHkxMTCQdCiFSoXfv3oiIiEBUVBS3LjU1FVeuXKn2+yDVeBKZULIPyvnz5zF9+nRuedeuXRgwYABevXqFR48eYefOnVyNX3R0NF/tpoGBAV9ilfbs2TNMmjQJ169fF/g4PGmQk5ODAwcO4OvXr3j8+DFsbGwAFD8rOiwsDHl5edi3bx9GjBgBDQ0NCUdLiOTwJpAHigcXKSsro6ioCIWFhRg6dCgMDAwkHCEh0kFLSwuenp64evUqrl+/Dnl5ecjJyaFfv34wNjau1nNRwZNUya1bt6CgoABnZ2esX78eP/74I16/fo13796hf//+OHDgALp37w45OTlcvnwZ48ePx/nz52FiYgJLS0ts3rwZs2fPxp07d5Cfnw9XV1ds2rQJP/zwA9TU1KocR2BgILKzs+Hr68ut69evH6ZNm4bvv/8eSUlJ8PDwQI8ePdC0aVOh36e6ujri4uLg5+eHJUuWCP16cVBRUcGUKVPKrNfQ0MDkyZMlEBEh0snQ0BATJ06UdBiEyAQtLS0MGzasxs9DBU9SJV26dOH+njVrFgCgTZs2aNOmDQDA09OT2z5+/HgAxQVCntmzZwMAnJycuHU+Pj5CxRAYGIizZ89i3759XA1oUlIS7t27h/PnzwMA9PT00KhRI/z111+YNWsWTExM8OnTJ+4YCQkJcHZ2LvccRkZGOHbsGLp27YqCggKsWLFCqBgJIYQQUj7q40lkwokTJ/DPP/9g586dUFBQ4Go8dXR0oKuri4iICADFUwy9evUKRkZGAICxY8ciMDAQAJCZmYm7d+9i5MiRFZ7LzMwMN27cQEBAAH755ZcafFeEEEJI3SLHeKMw6iBhHmpPJOfJkyews7ODrq4uty4tLQ1fv34FANy8eRN+fn5o2bIloqOjYWVlhVWrVkFOTg65ubmYOnUq5OTkkJSUhNGjRwsseJ47dw4rVqxAamoq5syZA29vb8TExKBr166wtrbGnDlz0LlzZ7G9Z3Go6vVPeULqMsoTQionzPVPBU/6oiB1FN1QCakc5QkhlRPm+qemdkIIIYQQIhZU8CSEEEIIIWJBBU9CCCGEECIWVPAkhBBCCCFiQQVPQgghhBAiFlTwJIQQQgghYkEFT0IIIYQQIhZS88jMwMBABAUFQU1NDSYmJvD29ubbHhkZCT8/P5ibmyMxMRFr166FoqIiHj16BD8/P9jZ2eHevXvw9/eHqamphN4FIYQQQggpj1TUeGZmZmLmzJnw9/fH77//jgMHDuDt27d8+3h7e8PHxwfz58+HkpISDh06BABYunQpRo8ejV9//RXOzs7YtGmTJN4CqWEdO3bEyJEjMXLkSKipqaFLly4YOXIkHBwccOPGDbHF4ebmVun5Dh8+jLZt28LOzg7h4eFiiYsQQgiRBVJR8Lx37x5MTU2hqFhcAduhQwcEBQVx2/Py8nDnzh3Y2NgAABwdHXHx4kUAgIGBAZKTkwEAKSkpsLOzE3P0RBw6d+6MY8eO4dixY9DT08PcuXNx7NgxzJkzB8rKypIOj1NUVITZs2fj4sWLePjwIWxtbSUdEiGEECI1pKKpPSkpCQ0bNuSW1dXVkZSUxC2npKRAVVVV4PYFCxZgzJgxiIiIwNOnT8s00ZeUm5uL3Nxcbjk9Pb063wapQevXrxe4ftiwYSgoKEDfvn1haWmJnJwc6OrqYunSpQCALVu2YNWqVRgzZgzevXuHGzduYO/evYiOjsbp06dhbW2NvLw8BAYGYuHChfD29sZff/2Ff/75B7q6uoiLi8PatWvRuHFjBAQE4M2bN9i4cSNOnjyJhQsXwsDAgIvl8+fPcHBwQEZGBvr164cpU6Zg6tSpYvl8qhPlCSGVozwhRDQiFTzv3r2Lc+fOITw8HJ8/f4aWlhZsbW3Rt29fODs7C308PT09ZGRkcMvp6emwtLTklnV0dJCdnc23XU9PDwDQv39/7NmzB/b29rhw4QLGjBmD27dvCzyPn58fVyAhtYunpyeGDRsGAOjTpw/u378PBwcH/PjjjwgNDUV0dDROnTqFO3fuID8/H5MmTUJ0dDTU1NSwaNEiNG/eHN7e3nj58iWWLFmCZ8+eQV5eHnv27MHs2bNx5MgRjB07Fnv27IGvry/c3NzKxKClpYVly5bhzJkzOHbsmJg/gepDeUJI5ShPCBGNUAXPa9euYc6cOUhLS0PXrl3RvXt3qKurIz09HRERERg3bhw0NDSwdu1afPfdd1U+rqOjI6KiolBQUABFRUWEhITA19cXsbGxaNq0KZSUlODk5ITHjx/DxsYG9+7dQ+/evQEAcXFxaNSoEQCgUaNG+Pr1a7nnmTdvHmbNmsUtp6eno1mzZsJ8BHVSdnY2Xr58WWPHt7Ky4qvRFpaCggLi4+MxYcIEqKurIyoqCq9fv4aDgwO3T7du3QAATk5O2LhxI+zt7aGmpgYAcHZ2xq1btwAAV69exdevXzFt2jQAQEZGBt+PnpL8/f2xdetWAMDBgwfh5OSE0NBQ2NvbAwAYY7C2tkaTJk0QHx+PI0eOcN1FpBnlCSGVozwhRDRCFTxXr16NDRs2oEuXLuXuExwcjFWrVglV8GzQoAHWr18PHx8fqKmpwdPTE+bm5mjfvj327NkDW1tb7NixAytXroSZmRlyc3Px/fffAwB27tyJuXPnonXr1nj27FmFg4uUlZWlqj+grHj58iVXmKoJYWFh39Q399ixY/jzzz8RHh4OBQUFjB8/HoWFhXz7lPx3l5OTq/B4FhYW2LFjB7ecmZkpcL+ZM2di5syZfOvCwsKwcOFCAEBMTAyUlZVx7tw53LlzBydOnJCJgiflCSGVozwhRDRCFTwvX74MoLgmJyIiApaWltyAIB4XFxdcunRJ6ED69u2Lvn378q0LDQ3l/rawsMC+ffvKvG7IkCEYMmSI0OcjVWdlZYWwsLAaPf63SElJgYaGBhQUFAAAsbGxFe7v5uaG5cuXIysrC2pqarh79y63rXv37liyZAnS0tKgoaGBx48fY8OGDdy1p6KigsLCQjx58gQ5OTno2LEj91rGGB49esQVoiMiIuDp6QllZWUoKChAS0vrm94nIYQQIutE6uMpJyeHjh07llsTRGoXVVVVqZktYP78+UhNTcWOHTtgZGQEa2trfP/99zh37hyGDh0KExMTfP78GQEBAejUqRNevXqF+/fvIz4+Htra2ujfvz+sra2xaNEi9OrVC1ZWVlBXV4eSkhIAwNLSEtu3b8e4ceNgYWGBz58/Y82aNdz5hw8fjg0bNoAxVmbA05s3b6CjowNNTU0AxQVPXo3I/v37MWfOHPF8SIQQQoiUkmOMMVFe2KlTJxw6dAgWFhbVHZPYpKenQ0NDA2lpaVBXV5d0OESM/v33X7i7uwMAtm7dipiYGL4CZnWYMGECNDQ0EBoaisGDB5dplpe0ql7/lCekLqM8IaRywlz/Ik+nNGDAAPTr1w/Tpk1Ds2bNIC//35Sg/fv3F/WwhIjFrl27cO7cOcjJySE1NbVGHjzw5csX/Pnnn9V+XEIIIURWiVzw3LlzJ4Cy8yvKyclRwZNIvePHj9f4OUoPcCKEEELqOpEKnkVFRTh//jwsLS1Rr1696o6JkFrh7Nmzkg6BEEIIkSoiPTJTXl4eDg4OZUa0E0IIIYQQUh6Rn9VubW2Nt2/fVmcshBBCCCGkFhO54MkbXLR582acOXMG586d4/4j/7l69SoePHgAAPj999+5uR55c53u3r0bycnJkgyREEIIIUQsRJ5OydTUVPAB5eTw7t27bwpKXKpj+gs/Pz/MmzcPISEhSEtL4x7NKIzY2FgYGRmJdH5CREXTxBBSOcoTQionlumUoqKiRH1prTJv3jwAQIcOHfjWv337Frq6ujh8+DD33O/yBAcHY8yYMTUWIyGEEEKINBC5qb0u2bx5MzIzM/H69esy2x49esT9vX37du7vsLAwaGhoVFroBIAxY8bg9OnTePXqFbKysmpkTklCCCGEEEkTquA5cuRIREREVLhPREQERo0a9U1BScrTp0+Rn5+PtWvXAgDu3r2LGzduYMaMGWjQoAGePn3K7btr1y4AQEJCArdu1KhRePfuHY4fP47hw4cLde7BgwfD0tISampq8PHxwc2bN6vhHRFCCCGESA+hmtoHDhyIfv36QUdHB9999x33nOv09HS8fPkS165dQ0pKClatWlVT8daomJgYtG3blnumdqdOnfi2DxkyBIcPH0bnzp0xZMgQAICHhwe3XVNTE5qamjAzM/vmWGh+VEIIIYTUNkIPLmKM4eLFizh37hzCw8Px+fNnaGlpwdbWFv369UPv3r35Hp8pzWSpM/j+/fvRs2dPMMZw5coVeHp6SjokIuNo0AQhlaM8IaRyNTq4SE5ODn369EGfPn1EDlDafPz4EdnZ2bh06RK8vLwkHQ4AYN26dZgxYwZevXqF6OhojB8/ntvm6emJc+fO0aNJCSGEECJTZKNqsoY1btwYjRo1kppCJwDMnj0bSkpKaNu2Lfr161dmu5mZGfLy8rB+/XoJRCd+wcHB6Nq1K/T19eHt7Q0vLy906dIFd+7c+abjxsfHo3///nBzc+PWubq64vHjx5W+1s3NDTdu3BD6dcI6fPgw2rZtCzs7O4SHh1f78QkhhBBxEXk6JVNTU8jJyZVZr6ysDCMjIwwfPhwTJkwQuA/5dm3atAEAzJo1C7dv34azs7OEI6pZLi4u8PT0xJYtW7Bjxw4AwMmTJzF48GB8/PhR5OusadOmmDVrFpYsWcKtO3ToEAwNDYU+lqivq0hRURFmz56NkJAQNGvWrFqPTQghhIibyDWekydPhry8PKZNm4bff/8dU6dOhaKiIkaPHo2uXbti0aJFWL58eXXGSspRWFgo6RAkonXr1khISMCyZcvQpEkT/PzzzxgyZAh0dHRw5swZ/PXXX5g4cSJ+/fVXjBkzBh8/fuReu2HDBnTp0gXe3t7cU6QA4MSJE+jZsycOHTrErTt58iRGjx6NuXPnomfPnrh06RICAgLw5s0bbNy4ET/++COOHz9e4etGjhyJmJgYAMCWLVvQpEkTzJ49G0OHDoWVlRX27NlT5v19/vwZVlZWyMjIQL9+/fim6xJEUM04IYQQIlWYiNq3b8/evHnDt+7169esffv2jDHGQkNDmampqaiHF4u0tDQGgKWlpUk6FFIF+/btY/b29tzyunXrWJs2bRhjjHl6erKhQ4cyxhi7ffs2u3v3LmvZsiUrLCxkjDG2e/duNmrUKMYYY+Hh4UxXV5dlZmYyxhhbuHAhc3V15Y7r6enJ9u3bxxhj7OXLl6xx48bs69evjDHGbt26xZYvX84YY8zV1ZVdv369Sq87fvw4c3Fx4dt3zJgxjDHGXrx4wZo0aSLwPR89epSNGDGi0s+msLCQDR48uNL9Sqrq9U95QuoyyhNCKifM9S9yU/vr16/LPOaxWbNmePPmDQDA3t4eiYmJoh6eCGHjxo2YNGkSYmNj8eLFCwwaNAgBAQEYO3ZstRw/vzAfn7M+V8uxBNFS00I9hapNHxUbGwtvb2/k5uZCUVERgYGB3Dbe40qdnJywZcsWfP36lZvAPyMjA9nZ2QCAGzduwN7eHmpqagAAZ2dn3Lp1S+D5rly5Amtra6ioqAAobvJ3cXGpNE5BrxsxYgQyMzPRoEEDbh0ANG/enKuN9ff3x9atWwEABw8eRGhoKOzt7QEAX79+xciRI5GamgoTExMcOnQIS5YswdWrV9GhQ4dqmcaLEEIIqUkiFzwdHBwwY8YM/P7779DS0kJqairmz5/PPTry1atX0NfXr7ZASfl8fX0BAFZWVrCysgJQPNClunzO+owjIUeq7Xilje4wGvrqVbtWjIyMuD6epSkrK/MtW1hY8O2bmZkJAFLT75gXr4KCAtj/z2o2c+ZMzJw5k9vnt99+w8KFCwGA68s7d+5cMMZw9+5dZGZm4n//+x+WLl1a5ocgIYQQIm1ELnju27cPo0aNgo6ODurXr4+vX7+ic+fOOHKkuICSnZ1dbgFB2sXGxiI5ORkAoKury93QS64XRNR9awKvpq06aKlpYXSH0dV2PEHHr27du3fHkiVLkJaWBg0NDTx+/BgbNmzAvn374ObmhuXLlyMrKwtqamoVjozv3r07Vq1ahZycHKioqODWrVsICQnB7NmzoaKigsLCQjx58gQ5OTkVvi44OBguLi5cbWdVMMbw6NEj2NnZASiuyT137hy+//57LF68GGfPnsWkSZO4fVu2bCnCJ0UIIYSIj8gFT0NDQ9y6dQvx8fH48OEDmjRpgqZNm3Lb27VrJ9TxAgMDERQUBDU1NZiYmMDb25tve2RkJPz8/GBubo7ExESsXbsWioqKyMnJwdq1a9GwYUM8fPgQzs7OmDx5skjviddUPXjwYK5ZVlVVFadPnwYAvvWCiLKvnp5ejRRCz549i4kTJ+LixYto0qQJbG1tRT5WPYV6Va6RrCn/+9//EBAQgNjYWPz4449Yv349lJSUAADnzp3D/fv3ER8fD21tbfTv3x+WlpbYvn07xo0bBwsLC3z+/Blr1qwBAFhbW2PRokXo1asXbGxskJubizdv3mDHjh3Q0dHhjmVrawtbW1ts2rQJ48ePh6GhIVJTU+Hv7w8AGD58ODZs2ADGGFxcXMp9XZMmTfD+/Xtu4FHJeJ2dnREQEAAAWLhwId+AvDdv3kBHRweampoAimtqN23ahCtXruD48eP4/Pkz8vLykJWVhSNHjmDWrFni+ucghBBCRCL0k4t4ioqKsGbNGuzfvx/x8fFo2rQpxo8fj59//hkKCgpCHSszMxN2dnaIiIiAoqIiOnXqhICAAJibm3P7dOvWDevWrYONjQ3mzp2Lli1bwsvLC4sWLUKPHj3QuXNn5Ofn4927d7C0tKzSeUvOtP/lyxe0bNkS2dnZ5RYgSxYWS0tKSqrWfauzMFpUVCQzT5Mi5Rs+fDg+fPgARUVFHDx4EDExMfD29oaJiQkSEhIQGhoq1PHoiSyEVI7yhJDK1eiTi3gWLVqEM2fOYPHixTAzM0NUVBRWrVqFjIwMrFy5Uqhj3bt3D6amplBULA6nQ4cOCAoKwvTp0wEAeXl5uHPnDmxsbAAAjo6OOHr0KLy8vHD8+HGYm5sjJCQEGRkZItX6hIeHIy4uDtnZ2QgICICLiwtX6Hvx4oXAZndBRNmXVwgt+cx3oLgw+uLFCxgZGXHN9qIWRv/44w/88ssvuH//PjIzM+Hu7o6tW7dyny+RDX/99RffspGREZ4/fy6haAghhBDhiVzwDAgIQHBwMDeptYODA5ycnODi4iJ0wTMpKQkNGzbkltXV1ZGUlMQtp6SkQFVVVeD22NhYKCoqYubMmdi3bx98fHzw559/CjxPbm4ucnNzueX09HQA/w3EUVVV5St0AsU396oW9kTdt2SBlbc8duxYbl3JmlheYVQYv/zyC4DifyOe77//XqhjkLqjvDwhhPyH8oQQ0Yjc/pqdnQ1dXV2+dbq6uhX2ayyPnp4eMjIyuOX09HS+ZmcdHR2+45bcrq6uzo2kd3JyKndaHADw8/ODhoYG9x+v0Hzz5k2EhYWJVKirDkZGRrCzs+P+4w0SefHiBYKDg5GdnY0FCxYgOzsbwcHBePjwIWJjY7/pnDTVFSlPeXlCCPkP5QkhohG54Nm1a1dMnjyZq5VLSkrC1KlT+Z55XVWOjo6IiopCQUEBACAkJAQeHh6IjY1FUVERlJSU4OTkxD0H+969e+jduzeA4udlR0VFASiu/WzevHm555k3bx7S0tK4/+Li4gAAtra2sLOzk5rpaHR1daGqqoqxY8di7NixUFVVRc+ePbl19vb2aNmy5TcVPh89egQAOHbsGPf5EQKUnyeEkP9QnhAiGpEHFyUmJmLUqFG4fv066tevj5ycHHTt2hVHjhwRaf7OCxcu4OLFi1BTU4O5uTm8vb3Rvn177NmzB7a2toiMjMTKlSthZmaG5ORkrFu3DoqKioiLi8OiRYvQvHlzvHz5EosWLYKFhUWVzinNncEFTenEW8drig8ICEDLli2/eSDS58+foaVV/VMaEelGgyYIqRzlCSGVE+b6F7ngyfPhwwduVHuTJk2+5VBiJ6tfFLGxsVy/TwAi9/3k2bFjR5npq0jtRzdUQionbJ48e/YMrVu3rvS45c0XTYgsEsuodp4mTZrIXIFT1hkZGXEDkni1n8HBwSLXfnp7e+PKlSvQ0tJC+/btayhqQgip/e7cuYPc3NwyLVUliXtKPUKkiVA1nufOnavSfv379xc5IHGqDTU5gmo/v+ULzM/PD/PmzauRWIl0oRpPQionbJ7wqKqqYteuXZg8ebLAQbeVPXDkW1uyCBGnGmtqNzU1rXQfOTk5vHv3rqqHlKjackPl/aIu/Suah77AiCBU8CSkcsLmyc2bN/H161fuu7i8h4lU9IhlXktWWFgY98jc0vtRjSiRJjXW1F6V0c/Xr18X5pCkGlR1TtCqfEk9fPgQSUlJ6NmzJ3bu3IkpU6bUWNyEEFLb2NraQl1dnfsurkoBsbw5oF+8eAEA3NSF5bVuUSGUyJJv7uMJAB8/fsT+/fvx559/8k2LRMSvsi8wnvK+qEr+uh42bFj1B0hqjfJqXwT1aStJ0L504yS1jTAPFCmt5JR6QHEhc9WqVdzT9XR1dfmeeEeFUCJLRC54FhYW4vz589izZw/++ecfODs7Y+bMmZgxY0Z1xke+UekvMJ6qNL9nZGRAW1u7pkMkMiY2NhYvXrwoMziC9+OmZK2MIIL6tlXlximoQEs3WVIblRxAyutC9dNPP/E9Xa+8xy5T1yoi7YQueL569Qp79uzBoUOHoKmpie+//x7btm2DkZERcnNzqeApZUp+QfFUtfn99u3bMDY2FkeYRAZcvXoVampqfIXFoKAgJCcnczMrAOBqZXhP4CpJ0E0yICAAkydPrrD2pvQgOp7KbrLUJ47IKkFdqEpew4K2l57lhIeufSJNhC54tmzZEr1798aFCxdo6h0ZIWqTz+jRo3Hq1ClYW1tX+EQoUjcMGTIEALgCZ8uWLblCYelmQV6tjCAlfwjxboguLi7l1t6cPn0aycnJZQq05d1keQRNWUM1QUQWVfYdztteUQuXKE3x1BWG1AShC57jx4/HyZMnMXPmTHh6emL48OE00lVGley4Xt6XypAhQ5CRkSHOsIiUunnzJho0aFDmeildq17ZTUrQTVRQ7Y2gQmjJAm15N9mSStfKVnWQHSGySFALV3k/5sqbck/QLCnl/WijgikRhUhPLsrMzMSxY8fw559/Ijw8HP369YOnpydcXV2hrq6OwsLCmoi12tXVaWIqmvtT0BfIli1b8OOPP0oiVFKDZGE6pcqayqs6kOnhw4ewt7cv0wWAbpikMrKQJ5WpypR7guYU5Q1q+umnn8rkTlUKpqTuEOsjMyMiIvDnn3/i0KFDYIwhJSWFCp4yoLwvovK+QK5fvw4VFRV06tRJEuGSGlAbbqhVVVEfURoNTCpS2/Kk9I+1ip6iJGgap5IEFUwpj+omsRY8eQoKCnD27Fn8+eefCAwMrI5D1jhZ+aKoabwvovImLS7pjz/+wM8//yzmCElNqG031MoIc8PloZsoqQt5ImrLQnnzi1LtZ90jkYKnLJLlL4qaULo5UtAXUEFBARQVq2X6V6nQvn17zJ07F8OHDxfp9cuWLcOZM2cgJycHd3d3rF69GnJycmX2S0hIwI8//oiYmBgAgJmZGbZu3QodHR0AwN9//40dO3agqKgIiYmJaNOmDbZt28b3CL7qVhduqJWpahNkXa8RFVeeAICmpiZsbW255dzcXDx//hzp6encury8PLRs2RIuLi7Yv3+/SDFVFeVJ5YSpvKjNxJknABAUFIRVq1aBMYbk5GR4eXlh7ty5GD9+PKKjo/n23bZtG1q1aiVSXFUh1PXP6rC0tDQGgKWlpUk6FKkQExPDVFVVGQAGgKmqqrKYmBi+fR4/fiyh6KpfQUEBU1FRYc+fPxfp9fv27WM2NjYsJyeH5efnM0dHR7ZhwwaB+44YMYL17duXFRUVscLCQta7d282btw4bnvPnj3ZpUuXGGOM5ebmMjs7O+bj4yNSXFVV1eu/ruRJTEwMCwsL4/4LCgqqNB/qAnHmCWOM9enTh2/5+PHjbMKECXzr1qxZw9TV1Zmnp6dIMQmD8qTqwsLCGAAWEBDAl0thYWG1PnfEnSf3799n7dq1Y8nJyYwxxl6+fMmmTZvGGGNiyYvShLn+qeBZx78oSuPdfAMCAgR+gezdu1fSIVab58+fMyUlJZafny/S6+3t7fm+GPbu3cssLCwE7tuqVSu2atUqbnnVqlWsdevW3HJoaCgrKirilidOnMj69esnUlxVRTfUypXOh7CwMEmHJHbizBNB+vTpw27evMktJyYmMmdnZzZ27FgqeEqZ0pUXJf9TVVVlQUFBtbYAKu486devH9u1a5fAbdJe8JSv3spWIor0nHQkpiciPSe9zLqq/Ffydd/KyMgIdnZ2cHFx4aaqsbe35/6bMWMG/vjjDyQkJOD9+/c4ePBgtZ1b3B4/fowWLVpgxYoVaNKkCfT19bFly5YqvTYvLw/h4eFo06YNt87a2hqRkZFITU0ts3///v0RFBSEnJwcfP36FRcvXoSjoyO33d7enmtSiYqKwpUrVzBhwoRvfIfkW/HyoeTcoQ8fPkRsbKyEIxMfceZJaYmJiYiMjISLiwu3bvHixVi4cCEUFBSEfzOkRvGmcwoLC+P7LygoCADg4eGBli1b1sr8EWeeMMZw/fp15Obmonfv3nB2doavry+ysrK4faZNmwYXFxd0794dJ06c+PY3WI2E6qyXmppKj1AUUnpOOnLycgAAKkoqUFdRL7P94N2DKCgqgKK8IsZ1GgcA3LqqUJRXRF/rvlCtp8qtE3QuYVT0xCN3d3cYGBgAAMaNG4ezZ89iwIABIp9LUh4/fow3b97A0NAQ8fHxuHLlCvr27YtevXph69atiI6O5qYYKS05ORmFhYXQ1NTk1vH+TkhIKJMnq1atwsSJE2FsbAw5OTl07dpV4JeSi4sLwsPDsWzZMgwcOLC63ir5RoKenV1X+n6KM09KO3bsGEaNGsX9KIuIiEBsbCx69uyJo0ePVsv7I9WrvMnuX7x4geDgYL6HPtSm3BFnniQlJSEzMxNbt25FcHAwNDU1MWTIEEyaNAlHjhxBq1at0KlTJ2zbtg1v3rzhfrgNGzasRt67sIQqeFpbW8PExAR9+vRBnz59YG1tXVNxyaSShUwAyM7PxoUnF7gCpKACYmp2KgqKCtDRpCMeRD/Ahy8fAAAFRQXwaO0BbdWKv5h55zgTfoZvPa8Q+62Fz6p8KcjqU43Cw8MxduxYTJo0CQDQs2dPmJiY4NmzZzAyMqrWGpVp06YhMTERsbGxUFBQwLhx47Bq1SosW7aMb7/g4GAkJyejd+/eyMrKwoIFC6otBiK6uvxsbHHmSWkBAQE4fvw4tzx37lysXr26xs5Hag7vCWWlf8DVltwRZ57k5eUBKH66IG9mgZ9++gnu7u7YvXs35s6dy+3bvHlzTJgwARs2bJDNgmd8fDxCQ0MRGBiIH374AUlJSejVqxf69OkDd3d31K9fv6bilAqlC5bAfzWLJWsuS1KUV8RA24EAILCAyNvHWMcYD2MfIuh5ELeuiWaTKhUcx3UaxxdXanYqgp4HIScvh4utvLhFUfqJR2ZmZiIdR9IeP36M2bNn861LSkqCvr5+pTW4Ojo6UFBQwJcvX7h1vL95tcE82dnZ2LVrF/755x8oKysDAGbNmgUHBwf4+vpyI9t5dHV1MWvWLEyaNAm//fZbhaMaifhU9mzsih4TKsvElSelvXjxAqqqqjA1NQVQPILX0NAQrVu3Fv5NEKlQ8gccL3dqy9PExJknvNrQktsMDQ3BGMP79+/RokULvv2NjY3LjHKXJKHnxWnfvj3at2+PxYsXIyEhARcvXsT+/fvxww8/oH379lxtqLGxcU3EKzEVFSz7WvdFTn6OwFrKkgW80gXE0vuU3C5MwVBdRV3gvqnZqWVqXUvGLWyNqKDmxhcvXuDUqVOYOXNmlY8jDRITE/Hp0yc0atSIW/fPP/9AVVUVHTp0qPT1ysrKsLW1xfPnz+Hu7g4AePr0KczNzcs0i+Tn56OoqAj16tXj1ikpKaGoqAgZGRnQ0dGBn58f5s2bx21XVVVFbm4uCgsLa9X0VbWFoGdj16baGx5x5klpBw8ehKenJ7f877//Ijw8HG5ubgCAly9fAgDc3Nzw22+/oXv37sK+PSIBVW1JkyXizpMGDRqgRYsWSExM5NYlJSUBKC6AzpkzB2vXruW2JSQkwNDQUOT3V+2qa0RTXl4eu3r1Kps5cyaztLSsrsPWKN4orMi4SJaQlsD9l/b1v1FZaV/TWEJaAnvx8QXzv+rPXnx8we0XlRzFNl/bzPyv+jP/q/5s87XNfK+VlLSvaWXiikqO4uIu/V6EiVnQqHdZHKX4zz//MEVFRTZ37lxWWFjIwsPDmZmZGQsICGCMMebv78/mzJlT4TH27dvHbG1tuekvnJycmL+/P7d9zpw53LKDgwP74YcfuG2zZs1iLVq04Eayq6qqstevXzPGGMvPz2eDBg1iHh4e1fiOy6LRutUjJiamzCwQspgTgog7T3iKioqYlZUVS09PL/e4np6eNKpdhpWeekmWc0YSeeLv789atWrFsrKyGGOMTZgwgY0YMYIxxpiKigp7+fIlY4yxlJQUZm5uzrZu3VqN77gsYa7/aqtKqVevHtzd3eHu7o7169dX12HF4sTDE1BRU+GWebWYAMr00Szd/C1qLWVNqqz2VEVJBYryinzN+lWt/RRU06OiooJDhw5h6NCh8Pf3l4naz8ePH2PQoEH48uULtLW10ahRIyxbtgxjxowBUDwhcmVNE+PHj0dsbCycnJwAAO7u7vD19eW2v337lnt87LFjxzBz5kw4ODhATk4OWlpaOHv2LNeMvmzZMowdOxb169dHZmYmWrVqhe3bt9fAOyfVrTb3XRN3nvDcuHED7du3R8OGDcscLzU1FYMHD+ar8Tx9+jQNfJUx5bWgyWLOSCJPfH19kZCQgI4dO0JTUxPNmzfHzp07AQArVqyAp6cnlJWVkZ2djcmTJ8Pb27ua37XopObJRYGBgQgKCoKamhpMTEzKfEiRkZHw8/ODubk5EhMTsXbtWr4myMmTJ+PJkye4d+9elc/Jm2n/SdQTGGgX95WoaECQtBQsqwOv3yevP6iggUyVvd/Y2FhulCLvSRU5OTlQUVEp9zVEetATWaoXPb2ldqI8qTmlcyYgIKDW9pWu7YS5/qWi81hmZiZmzpyJiIgIKCoqolOnTujevTvMzc25fby9vbFu3TrY2Nhg7ty5OHToELy8vAAU1ybxBm2IwljbmO+DksZazOrG6xdauvazpMpqQo2MjLj5DXnevXtXo4/lIqQ8vB9TksrZ0n3XSg/CI4Twqyt9pQk/qSh43rt3D6amplwNZocOHRAUFITp06cDKJ464M6dO7CxsQEAODo64ujRo/Dy8sLbt2/x8OFDDBkyBCEhIRWeJzc3F7m5udxyyWf/llTeYJ3aqHSzPA+vJvTDlw+AJir9PHg32YcPH6JVq1Y4ePAg3N3dpatDM6mSquaJqATNsvCtSrZUSLqVojY1IZLy1XSe1CW80e61eZ5P8h+pKHgmJSXx9eVRV1fnRmgBQEpKClRVVctsz8vLw7Jly7Bjxw7cv3+/0vP4+flh6dKl1Rt8LSCooF2yJrSiG7mgm2yzZs3Qpk0bfPr0iQqeMqi8PElKT0IORKtR5BU2y5tloTooyivCo7UHrr64yk1bJmjuXKBmWzIETRlTm6dbqqvoflK9anNfacKvWvt4bty4EXFxcXzD+Kvi6tWr+OOPP3D58mUAgI+PDywtLflqPDU1NZGdnQ0AOH36NI4ePYrp06fj1KlTMDQ0xLt37xAUFIRp06Zh6tSp0NDQKHMeQb9QmzVrRn1yypGek47UrNRK+7zy+unwJtbm/TspKSnhzZs39KUhpcrrk1Nenvid9YOKmkq5hbnyVOVBCtWh5Jy6lRVyK4uhugqmsbGxaNmyJbKzs+kmKqOEzRO6n3wb6istmyTWx/P9+/eIiooS+nWOjo6IiopCQUEBFBUVERISAl9fX8TGxqJp06ZQUlKCk5MTHj9+DBsbG9y7dw+9e/eGm5sbN6fbjRs38OTJE/z666/lnkdZWfmb+oLWNbyaUF5TfOmnJPFu3tr62uVOrF1bJgeuS8rLkz7WfdCwYcNyH4RQEd6DFMTR/F2yBl9QN5LynvZVOt6+1n2hraZdLY+e5TUhUj7UHnQ/qRnUV7r2k5pR7RcuXMDFixehpqYGc3NzeHt7o3379tizZw9sbW0RGRmJlStXwszMDMnJyVi3bh3XJ/Thw4fYunUr/vnnH8ycOROzZs2q0jlpFKLwBNUmCRqE9PDhQ9jb29OvVSkm6mhdUfpoStsgvYreQ2XXtih4+RAQEEB912QMjWqXjJKtBQA1u0s7Ya7/byp45ubm4t9//8X79+9haGgId3d3mfoFSF8U3yY9Jx0fvnzgm46JV8Dg3WgPHDiAsLAwzJ49m74wpAzdUMtX0bUtCkE30dOnT0NPT48KoVKO8kRyqNlddghz/cuLepKQkBCYmppiyJAhWLJkCYYMGQIzMzOEhYWJekgiY9RV1NFEswk3COlIyBEcvHsQ6Tnp3KAjT09PbNq0CZaWloiNjZV0yJW6c+cOmjZtWuX9ly1bBjs7O9jb22Pu3Lmoyu+4vLw8mJubY/z48UJtI+JT3rUdnRKNxPREvv/Scyofzcxrcg8LC0NQUPHUZR4eHrC3t0fLli1lIjdKklSe/P333+jZsye6d+8OGxsbjBkzBmlpaaK8BZmUnpNe5voT5XqUFUZGRrCzsyszbZ+skOT9RJRjiYvIfTynT5+O1atXY8yYMZCXl0dhYSEOHToEb2/vSqc1IrVHyT6gJadg0tbURtiTMGSnZctUf8+nT5/C1ta2Svvu378fp0+fxv3796GgoAAXFxds2rSJ72kTgmzcuBHJyclCbyPiVVH/5pKq2h+0ZN81QaPeZakJXlJ5snPnTsycORMeHh7Iy8tDp06dsGjRImzcuFHUtyIxwnZZqeqMEKIMnCsZi7R1iylJ1vp7SipPRD2WuIhc8FRSUsL333/PLSsoKGD8+PHYvXt3tQRGZEd5k9Hz+sfxbNy4Eb/88otUTzD/7Nkzbr7YymzZsgVeXl5c95JJkybBz8+vwuROSkrC2bNn0b9/f6G2EckQZqCSMPOHCpo4G5CdfmySypOVK1dyTa1KSkqws7MTaUBrTapo2rFvnVas5CA9QYQZOMc7hrBP6xNUYK7pwirliWDl5YkoxxInkQuerVq14vp28sTHx8PExKQ64iIySFDtZ05eDvelcfDgQZw4cQIvX76Umi+MnTt3Yvny5cjKyoKvry+ePn2KadOmVfq6vLw8hIeHY/Xq1dw6a2trREZGIjU1tdznRi9evBgLFy7E0aNHhdpGJK+8B0uM6zSOm3as5IwPVRmUJGjOT2lsGZCWPLG3t+f+joqKwpUrV7BhwwbR3lQNOfHwhMBpxwQV8CoqRApSlQKeoB9IPOUVTHmxABA4c0l576Hk66tjEF55ZGVuXGnIE1GPJU5CFTwnTJjA/f3161fY2NjA2dkZOjo6SElJwc2bN9GtW7dqD5LIjtI359TsVK7ZPexemFTdWDds2IDdu3fj2rVrMDU1xaRJk3Dnzh3s3LkTs2bNQnR0NE6fPi3wtcnJySgsLISmpia3jvd3QkKCwOSOiIhAbGwsevbsWeaGWtE2It1KTztWsstJjmrlE+4Lmj5GmpoSpSlPeFxcXBAeHo5ly5Zh4MCB3/oWq1VF046JY1qxyp68J6hgWjKWyrqXlC4wl77eyzvut5L2x2tKS56IcixxE6rgef36db4OrFZWVtzfxsbGaNeuHQ4ePFhtwRHZJajZ3c6yuIlMGvrppKenY/Hixfj333/RokULAMC4ceNw4sQJNG/eHEZGRlBQUKjWc86dO5fvV2hVtxHZUFGXk6r0AZXGG6q05QlPcHAwkpOT0bt3b2RlZWHBggXVGsO3MNY2hrq64EcRS0P/ycoKppV1Lyn9Hkpf7yXVxIMapHFuXGnNE2klVMFz5syZ8PHxqXAfaShNE8kTVANUpFIE/ab6XD8dST7Z6Pr169DX10f79u25dQkJCWjbti3k5eXx008/Vfh6HR0dKCgo4MuXL9w63t8GBgZl9g8KCoKhoSFat24t1DYie8oblFRZc6Q03lClKU9K09XVxaxZszBp0iT89ttvkJOTq9J7EpfKCniyoCrvoeT1XlJV+5uK0kRvZGQkVSPdpSlPhD2WJAhV8Cxd6Dxz5gx27dqF2NhYGBkZYdKkSZUWTEndUboGKDQhFAsOLIC9uj2iXkVJ9OaalJQEPT09vnXHjh2rckdwZWVl2Nra4vnz53B3dwdQPILR3Nxc4I+vf//9F+Hh4dyTtl6+fAkAcHNzQ1paGpSUlARu++2339C9e3dR3iKRoNK1Rrw5QStrfi95Q5WGlgFpypPffvsNoaGhmDdvHre/qqoqcnNzUVhYyD1QhIhfRf2fy+tvKmyXlPJQnpTNE2GOJRFMRDt27GCmpqbs559/ZmvWrGFz5sxhpqambPv27aIeUuzS0tIYAJaWlibpUGq9tK9p7MXHF8z/qj9LSEtgYWFhDAALCwuTSDy3b99mSkpK7MGDByw7O5v98ccfTE5Ojm3dupUxxpi/vz+bM2dOhcfYt28fs7W1ZTk5OSw/P585OTkxf39/bvucOXP4lkvy9PRknp6eQm+rTlW9/ilPvl3a1zS2+dpm5n/Vn/lf9Webr21mUclRLCEtge+/tK9pLCYmhqmqqjIADABTVVVlMTExEolb2vJEVVWVvX79mjHGWH5+Phs0aBDz8PD4pvdYGcqTmlFeTqR9rdrnR3nyn9J5UtmxaoIw17/IPxEPHjyIR48eQUNDg1v322+/oXfv3vD29ha9JExqJXUVda7jeWp2KjIKMtDUoimevHmCw6cOY9KESbAyt6rkKNXHyckJPj4+6N69OzQ1NdG/f38YGBhwv1BjY2MRHR1d4THGjx+P2NhYODk5AQDc3d35pqt4+/YtCgsL+V6TmpqKwYMH8/1CPX36NLS1tSvcRmSbMHOCjus0TmpGuktbnixbtgxjx45F/fr1kZmZiVatWmH79u3V+I6JuFTUJaUq05JJ04wQ0pYnlR1L0kR+ZKarqytu3rxZ5fXSiB5xJl7pOek4ePegwLnr8nLy0N+qv1gLn3UdPQpQcgTNhchrevRo7YEmmk34Hj1LjwqUHMoT8UjPSeemJavqnKI8lCeSJ8z1L3KNp6amJrZs2YIffvgB9evXx9evX7Fnzx6+IfyElFS6E/rHTx/x5csXRMZFIkMzA/dC70G1nqrEB1QQUtME9YkrOTq49MMXpKEfGyE1qfS0ZKVbBoR5QAORbiIXPDdv3ox+/frB19eXK3haW1vj/Pnz1RkfqWVK3nD11fUBFP+IuR53HQsXLMT0D9OlYhoZQsSNd9MtORBJoYECGhs1lrknthAiKkHTOQkqhAoaDU8/0GSDyAVPIyMjPHr0CPfu3cP79+/RrFkzdOzYEfLy8tUZH6kDGjdqDMQB85bOw28zf5OKaWQIkQR1FXVAE3zzIs7bN08qZoIgRNwEFUJLjoaHZvE+svpIzbpK5IKnjo4OPD09sX79+uqMh9RBvCbGPIM8/Lr3V+QUCZ5+g5C6QNAcuNpNtZFflA9NfU2pe7IRIeIg6AENvJpPaRpoRConcsGzRYsWVOgk1YJ3o7396DZe4RVexLxAflE+DHQMaLARqZPKewrSvD/nYfmS5Uifn457wffoxkrqHEFdUnJUc6Cpr0n5ICNELnja2dkhISGhzEz4gwYNwt9///3NgZG6RV1FHab6pnj68ikyNDPwKOMR8pLyAIAKn6TOKj3Y4vzj8/D+3Ru5X3Nx4/YNtEluQ7WfpM4R1CWFN/gooyCDWgaknMgFz8+fP8Pa2hrOzs58I9nv379fHXGROsjK3Arx8fEoQAEu37gM487GSEhJoIInqdNK9nPzdPLEk8gnCE0IxUb/jUiMTURhXiHVfpI6p6IR8NQyIN1ELnjevXsX06ZNK7NeRUXlmwIidVs3124AgPr16+NRxiNExkUCADW7E4Lim621hTUeJT7C9/O/BwDkfs1FfGI83VxJnVPeCHhqGZBuIhc8Z82ahRkzZpRZ36xZs28KiBCguKCZl5RHze6ElKKuog5PJ0/k5OUg7HkY9YsmBNQyIEuEKnimpaXB19cXgYGBqFevHqKiorB69WrUq1eP22fChAnVHiSpe3g3z4SUBG6C+ajEKGjradPkwaTO491kqV80IWVRy4B0E6rg6ePjg+joaCxatAgFBQXYv38/Vq5ciSVLltRQeKQuszK3gpW5FerJ10Pwp2C8wiu8CnkFBTkFeDp5UuGT1Hn0A40QwahlQHoJVfAMDw9HWFgYFBWLX+bp6Ym+fftWS8EzMDAQQUFBUFNTg4mJCby9vfm2R0ZGws/PD+bm5khMTMTatWuhqKiISZMmwdDQEPLy8oiKisLWrVuhqqr6zfEQ6dFUvyk2DtkIBSUF6Bvp4/v53+NJ5BNYW1jTjZXUefQDjRDBqGVAOgn1mCEtLS2u0AkA2traUFZW5ttn8+bNQgeRmZmJmTNnwt/fH7///jsOHDiAt2/f8u3j7e0NHx8fzJ8/H0pKSjh06BAAoFGjRliyZAkWLVqE+vXrY/fu3UKfn0g3IyMj3Au+h7PHz8J3oi9yv+YiNCEUB+8eRHpOuqTDI0QqNNVvio3TN2Kd9zocWnUIhawQUbFRkg6LEImzMrdCf6v+aNewHRp+aQglFSVEJUYhMT2R7iESIFSNZ3Z2Np4+fQrGGLcuKyuLb92hQ4cEDjqqyL1792BqasoVajt06ICgoCBMnz4dAJCXl4c7d+7AxsYGAODo6IijR4/Cy8sLy5cv545TWFiIBg0alHue3Nxc5Obmcsvp6XTByQojIyOub45vL1+s3bYWGZoZ3OTB1KxYfShPZBPvB1pycjKevHmCL/iC0KehUFZQppqdGkB5IlvKaxko77nvpOYIVfAMDQ2Fra0tX8ETAGxsbCAnJwfGGOTk5IQOIikpCQ0bNuSW1dXVkZSUxC2npKTwNZ+X3g4AcXFxiI6OrrDG1c/PD0uXLhU6PiI9dHV18TXtK+ZMm4N5f87jJg+mZsXqQ3kiu3g/0FQ1VHHu5TlkaGbg3MtzAKhZsbpRnsgmFXkV/P7D7zhz/gwMjAwQ9DwIOXk5dO8QI6EKng4ODjh27Fi52xljGDVqlNBB6OnpISMjg1tOT0+HpaUlt6yjo4Ps7Gy+7Xp6etzyp0+fMH/+fBw9ehRKSkrlnmfevHmYNWsW33Fo+ifZYmRkhNevX+PFixcY98M4KNVX4vp9RsVGwaaFjaRDlHmUJ7KPV8i8HX4bGZoZuB1+GwkpCTSoohpRnsiuL4lfEP8mnltOzU6lVjMxEqrguWnTJhgbG1e6j7AcHR0RFRWFgoICKCoqIiQkBL6+voiNjUXTpk2hpKQEJycnPH78GDY2Nrh37x569+4NAIiPj8eCBQuwZcsWaGho4MSJExg2bJjA8ygrK5fpk0pkD69WJ+ROCF+z4oeUD2ic3pi+QL4R5UntwCtg8mo+aVBF9aI8kU26urpQVVXF2LFjoamvybWc8R65qVpPle4hNUyOlW43l5ALFy7g4sWLUFNTg7m5Oby9vdG+fXvs2bMHtra2iIyMxMqVK2FmZobk5GSsW7cOioqKMDU1hY6ODte308LCAnv27KnSOdPT06GhoYG0tDSoq9NFJmtu3boFBQUFyCnLIfhTMJTrF98EqNm9aqp6/VOeyLaXb1/yTbfU8EtDWDSzoNrPKqI8qX1iY2ORnJyMFy9e4MdZP2L9lvXI1MlEISsEAOr3KQJhrn+pKXhKAn1R1A6xsbFwdHHkm26pSWETWJtb0421AnRDrVtevn2Jcy/PQUmluDtSXk4e+lv1pxypBOVJ7RUbG4uWLVsiOzsbjY0a49KVS1BWV0bQ8yB4tPaAtirNh1tVwlz/Ij8ykxBpYWRkhAN7DkBHRwcfkj4gIicCH1Q+IPplNABqViQEEDzZ/O3w23zbCKlLjIyM8OLFCwQHB2Ps2LF4FvIMppamUJBT4AauUu1n9aOCJ6kVvn79Cjs7Ozw98BROVk54Ff+KBlUQUgpvShkDHQMa9U4IigufLi4uXL9PAGVqPz98+QBoggqf1YQKnqRW6N+/P4Dip2l9/PgRurq6NKiCkHLQqHdC/sOr+eT1+xw7diwKMwvRxKgJFOUVucFHVPNZPajgSWqdy5cvY/z48fjf//6H5i2b8zUr0s2VkGLljXqPjIxEE70m0NXV5R7aQEhtV/IhJQDw4sULAEA3o26AGriaT3pgybejgiepdcaPHw8AcLBzQNu2bfmaFXk314y8DBgbGtMXCKnTSvb7TPiSgA8qH7B41WIkxiaiMK8Q94LvUeGT1Cklp1sCAFVVVRw/fRwK9fj7fdLUS6KjUe00CrHWysvL4x4owJtS5l3MOyTWT6Spl0CjdQm/9Jx0HLhzgJtSJvdrLvS/6sPM2KxOtxJQntQ9vOmWkpKSMHjwYL5R7xo6Grjw5AIKigoA0OAjHhrVTgiAzZs3Y/bs2bhz5w7y8/Ph6uoK00amZaZeunbzGuxa2lHNDqnT1FXU4enkiZy8HMS8j8H1d9eRpp3GtRI8f/scrc1b19kCKKk7Sja7lx713rJlS3Qz6gZtPW2kZqdSE7wIqMaTfqHWObxfs7FJsYhWjMahVYfwMfJjnWtWpJocUhFeK0Hyl2S8zX8LJRUl5OXkoatZ1zrVTYXyhJSc7xMobn5/8eIFNPU1cfDuQb7az77WfaGtpl0ncqMkmkC+iuiLou7YtGkTfHx8+NaVbFrM/ZoLl0YucGrvJKEIxY9uqKSqXr59ibsP75bpptLPpl+t7+dGeUIA/qcdjR07FgEBAWjZsiVUNVShraeN7Pxsrgm+LvYBpYJnFdEXRd2RlZWF+Ph4PH/+HIMHD+bWp+ek4/aj23iV/arOPUqQbqhEGCWfEKamqYYJSyZwT0GqzX2lKU9ISYJqP0+fPg09PT2oaqhCRVOlTB/QulAIpT6ehJSipqYGS0tLWFpa4vDhwxgzZgyA4n5tpvqmePryKY16J6QCRkZGuBd8jxt04TXZi6+v9JPIJ7C2sKZ8IbVayTk/eYOPPDw8APxXCO1m0Y2vFvRM+BkAdbspviSq8aRfqHVObGxsmb6cdXHUO9XkkG/Ba3p89uoZPjb8COX6yrWy+Z3yhFRE0Aj40rWgdaEpnpraq4i+KOqm5ORk/P3335g0aRIuXbqEXr16cdtKNifyanKaFDaBtbl1rWt+pxsqqQ68nFHXV+drfq8tN1fKE1JVsbGxePHiBVcABf4biGRkZIT0nHSkZqXWyqZ4KnhWEX1RkEePHqFdu3Z863i/YD8kfUBEQQQ3mre/Vf9aVfikGyqpLrGxsQgODsaPs36E/yZ/NDVpiojMCBShCIBstxxQnhBhlTcQiUdQLSgg23OCUsGziuiLgjDGICcnV+72l29fcs+zrm2Dj+iGSqpT6UEXmvqaaKDegGs5aG/QHi2MWshcrQ7lCRFV6ZzgEdQUz5sT1KO1B7RVtbl9ZSVfaHARIVW0evVq/Prrr3jw4AE6duxYZnt5z7MuuY0Qwj/ooqRnr57h49ePCE0IRWhCKOQhj1YNWqGpblPKIVKrCcqJ8gYkNdRpCAW5/x7LySPLtaDloYInqdN+/fVXAMW/1spT8nnWkXGRyNDMQFRiFLT1tGXm1ygh4lDyiS88urq6fNMweS32wjM8w8PkhzR7BKn1BOVEeaPiGxs1xrZd26ClpQUAyC7MxqvsV9yTkUqS5ZyhpnZqGiFCuBN6B8GfgmvFqHdqQiTiwuvzBgA5RTl4FfVKZiajpzwhNUnQqHgeTX1NzPtzHjdgryRpazmgPp5VRF8UhGfbtm0YM2YMkpOTERYWhuHDhwvcr7xR7waaBjLX95NuqERSZGkyesoTIi4lf6AB4JsvtyRey4FyfWXk5eTBvJ45dDV1JXoPooJnFdEXBRGFoFHvALjnWFuaWkrNTbMidEMlklSypqf0ZPTSNIUZ5QmRpNKFUZ6cohx8TP2It/lv+e5BvEJoSfXk60FFXgW6urplmv2rCxU8q4i+KIggx48fR4cOHaCtrY2jR49i6tSp5e4raOJ5aauxKQ/dUIm0KG8KM1mqyaE8IZLAuwclf0nmK4SWlPs1F/uW7kN6Yjr27doHPT09vu3VUSCVyYJnYGAggoKCoKamBhMTE3h7e/Ntj4yMhJ+fH8zNzZGYmIi1a9dCUVERiYmJmD9/PszNzRETE4O1a9eiQYMGVTonfVGQ6sJrOmxs0Vhmmt/phkqk0cu3L/H87fNya3LEnVOUJ0RW8AqhJeWzfG5O3bycPPy55E9kfclCZnomviR+AfDfyPqWLVuKXACVuYJnZmYm7OzsEBERAUVFRXTq1AkBAQEwNzfn9unWrRvWrVsHGxsbzJ07Fy1btoSXlxcmTpyIfv36YcCAAdi2bRsSEhKwdOnSKp2XvihIZa5evQoNDQ106NCh0n1jY2Px5MWTMs3v0lBrIwjdUIk0K68mp2ROSVMTIuUJkVa8Jyadf3wehawQwH+DkzK/ZOLnOT8jJycHhXmFXI2osDklcwXPq1ev4o8//sDly5cBAD4+PrC0tMT06dMBAHl5edDU1ORGe50+fRpHjx7FiRMn0LRpU4SEhKBx48Z4+PAhpkyZgpCQkCqdl74oSFX5+flh3rx5ePToERISErjpLwSpyg2Th5oQCalceTnFa0IszCnEH2v/4Kah4amO/KI8IbVFek46cvJyyjwxiadkjaiKigqXU5qammjcqDHfvqVnn5C5CeSTkpLQsGFDblldXR1JSUncckpKClRVVQVuL/na0q8rLTc3F7m5udxyWloagIrncCQEAKZPn4709HSYm5vD3NwcGzduxIABA5CZmYm7d+9ixIgROHv2LAYMGIAmek3QRK8JAMD4nTESUxORkpaCqIIovFF+gzef3nDHzYvJg+kTU+ho6Ij1/RgaGHLnLP3bk/KESBtBOZWPfLwqeoXxC8cDAF7mvgQ+8b/uW/OL8oTUNipQgUo9FQxsPRC5ef9dv9kF2bj09BKXT0CJnPoE4CX/ceQhD8sGlqiHehXmiSBSUfDU09NDRkYGt5yeng5LS0tuWUdHh29uq/T0dK5zLO+1DRo04FsviJ+fn8Bm+GbNmlXH2yB1zE8//cT9PXnyZMkF8o1SUlKgoaHBLVOeEFIW5QkhlSudJ4LIiymWCjk6OiIqKgoFBcXVviEhIfDw8EBsbCyKioqgpKQEJycnPH78GABw79499O7dGwDg4eGBBw8elFkvyLx585CWlsb9FxMTA6C4b17J9ZX916JFC5G2l15f0TLv79Lr4uLiAABxcXESj7myv78lXlFjrmydJGOWtusiNjYWAKCtrU15UoMxU55Qnoj7mqvJz6M2XnPSGLOsXRfl5YkgUlHj2aBBA6xfvx4+Pj5QU1ODp6cnzM3N0b59e+zZswe2trbYsWMHVq5cCTMzM+Tm5uL7778HAKxatQrz5s3DkydPEBcXh/Xr15d7HmVlZSgrK5dZr6GhIVSfHAUFhQr3L2976fUVLfP+FrQOKO5WIOmYK/v7W+IVNebK1kkyZmm8LgBAXp7/9yflCeUJ5UlZlCffFrM0X3PSGLMsXhdA2TwRRCoKngDQt29f9O3bl29daGgo97eFhQX27dtX5nX6+vrYu3dvjcdXEm/Qk7DbS6+vaJn3t6B1oqiJmCv7+1vircrrBW2vbJ0kY5bG66ImUZ5U7W/Kk6ptozypeL2054k0X3NVia+i2Mr7W9q+i0ovSypPpGJUu6TI4ihEWYtZ1uIF6k7MtXm0rqzFLGvxAnUnZsoT6SFr8QJ1J2ZhXiMVfTwlRVlZGYsXLxbYXCKtZC1mWYsXqDsxV/U1deXzkCRZixeoOzFTnkgPWYsXqDsxC/OaOl3jSQghhBBCxKdO13gSQgghhBDxoYInIYQQQggRCyp4EkIIIYQQsaj1BU/qwkpI5ShPCKkc5Qkh367WFzzl5ORQVFQk6TCEJqtfcLIUtyzFWpKwcefl5QFAhXlAeSJeshS3LMVaEuXJf+rKv6EkyVKsJdVEnlSmVhY8GWPo27cvFi1aBKB4Jn1Z+LJgjOHUqVMAir/gZOFC3rJlC86ePYvg4GAAshM3ABQWFgL4tgQSB8YYIiMjERkZCaDqn/HixYuxePFiTJgwAe/evSuTB5Qn4kN5UvMoT/hRnohXXc8TYUjNk4uq07t379CmTRscP34cioqKWLRoEfchVeVxTpKyaNEiXL58Ga9fv8a8efO4C0JOTk7SoZXBGMPq1auhpaWF8PBwvHnzBtevX8eiRYukMt6SVq1ahaysLOTn52PcuHFo06aN1F4bjDFs3LgRsbGxiI+Ph6amJnbt2lXpteHn5wdbW1u4uLhg06ZNsLe3x927d2FlZcW9V8qTmkd5Ih6UJ2VRnogH5Ynw71X6PplqoKKigtGjR+Pw4cM4cOAAli5dCqBqzxCVpDZt2mDmzJmIiIiAn58fAOlt2nn//j0yMjIwZcoU/PTTT5gwYQJCQkLg7+8v6dAqtGTJErRs2RLDhw+HpqYmhg0bhtDQUMjLy0vlL+tt27ZBQUEB69evx+bNm/G///0PgwcPBoAKv5BzcnKgr68PXV1dLFu2DD4+PujZsyfi4+O5PKA8qXmUJ+JBeVIW5UnNozyJFykPpDtzRGRoaIgWLVqgffv2OHLkCA4ePIh169YhISEBKSkpkg6vXO7u7ujWrRsGDBiAJ0+ecF8W0vgFl56ejuvXryM6OhoaGhro2LEjJk2ahOjoaCQnJ0s6vHLJy8ujXbt2sLGxwS+//IIffvgBM2bMwLt376Tyl7WJiQkKCgqQk5MDAwMDPH78GDExMViyZEmFr1NSUsK5c+eQnp4OAFi6dCnGjRuHGzducPtQntQ8yhPxoDwpi/Kk5lGe3BApDum7AquJiooKGGNwcHBAYGAgFi5ciDFjxkg6rArp6upCT08PPXv2xJAhQxAZGYnx48dj9+7dXP8RSWKM4eTJkwCAVq1awdXVFa6uroiLi0ODBg3g6uqKrKwsfP78WcKRClZUVITExESsXbsWAKCgoABvb290794dr169knB0ZTHG0KRJE5w/fx537txBYWEh6tWrh3379kFRUbHMvv7+/jh58iRu3LgBX19f/O9//8OqVauQkJAAADA1NUVOTg7f6yhPqh/liXhRnghGeVKzKE/K5klVyXwfT8YYTp8+jS9fvqBv377Q0tKCkpISX7+Dhg0bYsKECZgxYwZ0dHQkHHHlGjZsiKFDh+L58+e4fPkyFi9eDAUFBUmHxfUZevnyJRYsWAA/Pz9kZ2ejY8eOCAoKQnZ2Npo1awZ1dXVJh8pny5YtMDQ0hIWFBVavXg07OztMnToV27dvR4MGDaCjo4O4uDhJh8lZtWoVMjMzUVRUhJ9++glTpkyBj48PVq9eDVdXV6SlpeHjx4/Iz8/nvjD8/f2hpqaG1NRUbN26FYMGDcLFixcxevRorFmzBnp6enj27Bmsra2RkJBAeVKDKE/Eg/KkaihPqhflyRro6+uDMYbRo0eLFJPMP6t9wYIFaNGiBS5duoSGDRvC1tYWnp6eUFNT4/ZJSkqCkpISNDQ0JBipcAoLC3H06FF06dIFRkZGkg4HAHD8+HEUFRUhMDAQrVq1wvz58wEAv//+Oz5//oz8/HzMnDkTzZo1k3CkxUp2WP/06RMiIiLQrVs3jBo1Cl27doWTkxMsLS3x5csXjBs3Dk2bNpV0yFiyZAlsbGxgZmaG8+fP4+jRowgKCsLDhw9x8uRJ6OjoQFVVFdOnT4ehoSEAID4+HuvWrYO/vz8YY3j8+DHGjRuHGTNmYOzYsQgJCcG6devQtWtX3L9/n/KkhlGe1DzKE+FQnnw7ypP/8iQ2NhZubm6iv0cmw96+fcsWLlzILe/atYtNnjyZHTlyhDHG2MWLF1l6erqkwvtmBQUFkg6BT1JSEktMTGQnTpxgI0eOZMuXL+fbLm3xxsXFsfnz5zPGGPvy5Qv7999/WY8ePdjhw4dZdnY2O336NDty5AiLiYmRcKT/Wbp0KYuKimKMFX+efn5+zMnJiaWkpLDk5GT2/v179unTJ77XxMXFsSFDhrCIiAhu3e3bt9nIkSNZfHw85YmYUZ7UPMoT4UnbdUd5UvNqIk+qg0z38VRRUcGRI0dw/vx5AICXlxdatGiBK1euIC0tDRs3buQ6w8oiaWgOKal0n6GoqCiMGzeO6zMkbZ3WBXVYnz59Om7fvo3CwkIMGjQIo0aNkpoaAEF9hn788Ue4ubnhwYMH0NHRQZMmTWBgYADGGG7cuIFPnz6hadOmcHBwgIeHBz5+/AgAcHR0ROPGjZGTk0N5ImaUJzWL8kQ0lCffhvKksch9OkuTrn9ZITVp0gQLFizAvn37cPXqVSgqKmL27NnIysrC169fERgYyFUfk+rD6zNkZGSEyMhIdOvWDQoKClIxio9VocN6bm4ul1DSYMuWLfj777/x/PlzrF69GleuXMHUqVMBAA0aNIC+vj5iY2O5/Rlj2LVrF06dOoXly5fDx8cHPj4++P7779GtWzfcvHkT169fR/369aGqqkp5IiGUJ9WL8qR2ojypXjWdJ9VB5gcXDRo0CMnJyVi7di1SUlJgY2MDc3NzKCsrS90vvNqksLAQ5ubmOHbsmNT8wgNkq8M6K9Fn6MmTJzh27Bi6deuGsLAwdO3aFb6+vrC0tERWVhaGDBnCve7kyZPIzs7G5s2b8eDBA/z1118YNWoUjh8/DjMzM9y9exefPn3Czz//jMaNGwOgPJEUypNvR3lS+1GefDtx5sm3kvnBRQCQnZ2NGzdu4MCBA7C1tcXIkSNhamoq6bBqvcLCQqn7MpalDuvx8fHYvn07Vq5cibS0NISFhWH16tXw9PTEoEGDEBQUhJycHDg7O/N9Gf/999949OgRli1bBgB4+/Yttm3bBhMTE8yYMQOA4H8byhPJoDz5NpQndQPlybcRd558k2rpKSolcnNzWX5+vqTDIBIkSx3Wnz9/zjp16sR1/s7IyGBnz55l06ZNYxkZGXz7FhUVsRMnTrBDhw6xjx8/MkNDQ+bn58dtP3fuHPvll1+qdF7KE0J5UjnKE0J5UjNkuo9naUpKSmUmQiV1i7R3WGci9BlijGH79u14//49VqxYgT/++ANBQUHYsmULVq5cCQBo1KgR8vPzkZmZWemj2ihPCOUJ5QmpHOVJ5XkiCsoqUiuVnjR56dKlUtGMI0qfoSVLlqBRo0bw9fWFr68vhg8fjmbNmuHSpUsYOXIk8vLy8OHDByxbtgwNGjSQ4LsjsobyhJDKUZ5ULyp4klpLGjust2nTBq1atUJgYCBWrVqF+fPnY+PGjWjcuDGOHDnC9RkyMDAAUDwlRps2bWBmZsY95q5FixZITU1F27ZtsXv3brRq1QqMMWhpaUnyrREZRXlCSOUoT6pPrRhcREh5pK3DenJyMhhjuHnzJk6dOoXWrVtjwYIF3HZB8aanp0NZWRnKysoAgI0bN2LKlCnw9/fHhw8fsH79etSrV0+s74PULpQnhFSO8qR6UMGTEAnIyMjA5cuXcenSJeTn58PFxQUTJkyAvLx8pfPXHT58GDExMbh69So2bdqENm3aiClqQsSL8oSQyslantSqwUWEyIpvmTT50qVLOHbsGPbu3Us3U1KrUZ4QUjlZyxMqeBIiISX7DAkzT6CbmxuOHj1KcwuSOoHyhJDKyVKeUFM7IRIkSp8hxphUPE6OEHGhPCGkcrKSJ1TjSYgEidJRnW6mNW/btm3w8fEps97LywuamprYv39/tZ9z//790NTUhJubG/7++2+RjrF48WK4ublBTk4O0dHR1RugBFGeEFI5WckTmk6JEEJKCQwMhK+vb5n1+/btQ1RUVI2d19bWFjdu3BD59UuXLgVAhS5CiPSiGk9CCCnh69evePDgAVxdXSUdCiGE1DpU8CSEyIyNGzfCxMQEo0aNwtSpU9GuXTsMGDAAHz9+hJeXF9q0aYOJEydy+/OaxhcvXozhw4ejefPmWLJkCR49eoQhQ4bAwsICu3fv5jvHv//+C2dnZ26eu5MnT8La2hqurq745ZdfyjxCbtasWejatSvc3d3Rq1cvREZGAgAWLFgAJSUltGnTBnfv3kVmZiYcHBxgaGiIoKCgSt/rq1ev4OjoCDk5OQQEBKB3795o2LAhVq9eLXD9mTNnvvHTJYSQmkdN7YQQmeHr64vPnz9j9+7dePbsGTQ0NGBnZ4cJEybg77//BmMMRkZGmDx5Mjp27Mg1jYeFheH8+fNITExEs2bNAACnTp1CaGgovvvuO0yYMIHrHxUYGIi+ffsCAF6/fo3Ro0fjwYMHsLW1RWhoKDZu3AgvLy8upqZNm2L9+vUAgGvXrmHy5Mm4du0aVqxYgVevXsHY2BidOnUCAEyZMgUqKirw8PCo9L1aWlpyI1S/fv2Kixcv4tSpU9DX18eIESPKrNfR0anWz5oQQmoCFTwJITLHwcGBe6RbmzZtoK+vDxUVFQDFj4CLjIxEx44duf179OgBOTk5GBgYQF9fH3Z2dgAAGxsbZGRkICEhAU2aNAEAXLx4EQsXLgQAHD9+HDY2NrC1tQUAtG/fHs2bN+eLxcDAAG5ubigqKkJeXh6ePn3KbZswYQK8vLzw+++/Q1FREadPn8aJEyeEfr/Dhg0DAAwZMgQAuIFDpdcTQoi0o4InIUTmqKurc38rKiryLderVw95eXlV2p/3aDje/k+fPoWOjg5XCP3w4QP09PT4jlWyZjE4OBg//PADQkJC0LZtW0RHR/PNh9ejRw8oKioiMDAQVlZWaNasGerXry/0+9XU1BRqPSGESCsqeBJCyP+7cOEC+vTpwy0bGhoiJCSEb5+UlBTu73v37sHExARt27YFAOTn5/Ptq6CggHHjxmHfvn2wtLTE+PHjay54QgiRATS4iBBC/l/J/p0AMGLECDx58gQPHz4EAISGhuLFixfcdktLS8TExCAuLo57fWleXl64ePEi7t27BwcHhxp+B4QQIt2oxpMQIjP27t2L/fv3IycnBxs3bgQABAUFQUVFBS1btkR4eDjCw8Px+++/Q09PD0FBQdyyqakp9u/fj0+fPuGnn37C8ePH8dNPPwEARo4ciVOnTuHt27fo0KEDd77mzZvjyJEj8PT0hJaWFlq3bg1HR0f8/vvvqF+/PoYPH47JkyejS5cusLGxgYWFBYDix9Dx5uNs3rw5HB0d+Qq0VfH+/XuMHDmSO56fnx86depU7npCCJEF9MhMQggBcOTIEVy+fBkHDhyo9mMPHz4cmzZtQqNGjcrdZ//+/di/f/83TSDPIycnh6ioKJiYmHzzsQghpDpRUzshhAAYPXp0tRY637x5g+DgYHz69AmMsQoLnQDQoEEDfPr0qVoemWlsbAxFRWrQIoRIH6rxJISQGhAaGophw4ZBT08Pu3bt4qZkIoSQuowKnoQQQgghRCyoqZ0QQgghhIgFFTwJIYQQQohYUMGTEEIIIYSIBRU8CSGEEEKIWFDBkxBCCCGEiAUVPAkhhBBCiFhQwZMQQgghhIgFFTwJIYQQQohYUMGTEEIIIYSIxf8BQfc4IrQl3lwAAAAASUVORK5CYII=",
      "text/plain": [
       "<Figure size 670x240 with 3 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot_1x3_freq_amt(dist_dic=dist_dic,df=df, boundaries=boundaries,dist_type=\"freq\",plot_difference=False,\n",
    "                                selected_labels= [0.1, 1, 10, 100, 1000, 2000],\n",
    "                                xlabel='mm/day [rr]', ylabel_freq = r\"Prob. / $\\Delta \\log(\\mathrm{rr})$\",\n",
    "                                ylabel_amt=r\"Prob. / $\\Delta \\log(\\mathrm{rr})\\cdot rr$\",legend_pos = \"upper right\",\n",
    "                  title = 'GFDL-FV3: Prediction of Frequency Distributions',\n",
    "                                fixed_model=\"FV3\", transitions=[(280, 290), (290, 300), (300, 310)],\n",
    "                                save_path=save_fig, save=True)"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.10.7"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
